Python数据结构列表

目录
  • 1 序列
  • 2 列表
    • 2.1 列表函数
    • 2.2 列表排序
    • 2.3 解析列表

正则小练习:匹配出以下字符串所有url,

import re

def find_url(sentence, show_urls=None, delete_urls=None):
    r = re.compile(
        r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘']))')
    url_list = r.findall(sentence)
    if show_urls == 1:
        for i in url_list:
            print(i[0])

    if delete_urls == 1:
        for j in url_list:
            # sentence = sentence.replace(j[0], '<URL>')
            sentence = sentence.replace(j[0], '')
        return sentence
    return "匹配完成"

if __name__ == '__main__':
    str1 = '你好哇 大佬 www.google.com'
 str2 = '哇 www.baidu.com 打不开了'
 str3 = 'python网址在哪儿 https://www.python.com 找到了'

对于字符串的基础使用基本已经阐述完毕!需要复杂使用的还需项目实战以及向大佬们请教。后面的几篇文章还是想阐述关于数据结构的一些基础使用。字符串可以看作为只存储字符序列的数据结构,同样为了方便众多使用者的理念,Python提供了几个功能强大且高效的数据结构:列表、元组、字典以及集合。作为使用者的我们只需要组合使用即可。

在开始数据结构使用前,需要介绍一个Python的另一个内置函数:type(),该函数在我们需要了解值或变量的数据类型时极为方便。如下:type输出结果中包含class 类,可以返回特定值和变量或者是否为模块函数。在代码调试过程中,该函数会起到很大的作用,例如在使用数据集合但并不知集合内部的数据类型时,可以使用type准确的返回对象类型。

1 序列

在Python中,序列是一组按顺序排列的值。Python 有 3 种内置的序列类型:字符串、 元组和列表。

序列支持切片、索引,同时具备以下特征:

  • 1 第一个正索引为零,指向左端;
  • 2 第一个负索引为 -1,指向右端;
  • 3 可使用切片表示法来复制子序列;
  • 4 可使用 + 和 * 进行拼接;
  • 5 可使用函数 len 计算其长度,例如,len(string) 返回序列 string 包含的元素数;
  • 6 表达式 x in string 检查序列 string 是否包含元素 x 。

2 列表

在Python中,列表的元素不是固定不变的,而是可变的,也就是表示可在不复制的情况下,添加、删除或修改列表元素。列表使用方括号将元素括起来,里面的元素使用逗号分开,举几个简单示例:随便定义一个num列表,可以使用+和*拼接列表,也可以使用len()获取列表长度,并且,同样可以使用切片和索引方式来获取列表中的子列表。

需要注意的是:列表可包含任何类型的值:数字、字符串甚至其他序列。空列表用 [] 表示,而只包含一个元素(x)的单元素列表写做 [x] 。其访问方式与字符串的索引方式一样,以num2为例,如下图:列表索引从 0 开始,第二个索引是 1,依此类推。当然也可以从右向左进行索引。

除了以上索引功能,列表也支持修改元素的功能,如下图我们将num2中的indexes=3的值777改为了'red'字符串,Python对原值进行了删除。

这里可以得到一个结论:列表元素指向相应的值,这也产生了一个十分有趣的作用。这里让一个列表元素指向列表本身,创建了一个自引用的数据结构;打印输出中的 [...] 表明,Python可以识别自引用,不会愚蠢的不断打印列表(功能强大!) 。

2.1 列表函数

Python针对列表也提供了十分强大的函数,整理如下表所示:除count返回值只返回一个数字之外,其他所有函数都涉及到修改传递给它们的列表。使用时一定小心,不然会误删列表中的元素或者在错误的位置插入元素。

以函数append为例,在列表num末尾添加一个元素,简单的一种编程模式,在函数开头创建一个空列表,然后再列表中添加元素,

如下:判断一个列表中的数据是正数还是负数。

def list_num(list):
    msg = []
    for num in list:
        if num < 0:
            s = str(num) + ' 是负数'
        elif 0 <= num <= 9:
            s = str(num) + ' 是正数'
        msg.append(s)
    return msg

if __name__ == '__main__':
    print(list_num([3,-10.7,22,-99,1]))

extend列表追加函数的使用:

pop删除函数的使用:

其它相关函数的使用就不一一举例了,有兴趣的可以自己体验一下。

2.2 列表排序

对数据进行排序是计算机最常做的事情 之一。无论是对人还是计算机来说,排序后 的数据通常比未排序的数据更容易处理。例如,在列表中查找最小的元素时,如果列表经过了排序,就根本不需要查找:第一个元素就是,人们的习惯就是喜欢排列有序的数据(特例除外哈)。

在 Python 中,要对列表进行排序,最简 单的方式是使用函数 sort() 。实际上,这个函数可用于对包含数万个元素的列表进行快速排序,同时可以修改列表。

如下:sort总是按照从小到大的顺序排序,若需要相反的顺序排列元素,先调用sort方法之后在使用reverse方法。

Python还可以给包含元组(将在下次讲解)的列表进行排序,

如下:给列表中的元组排序时,首先按元组的 第一个元素排序,如果第一个元素相同,则按第二个元素排序,依此类推。

2.3 解析列表

在实际Python使用中,会有很多地方使用到列表,所以Python提供了一种用于创建列表的特殊表示法—列表解析。下面举例如何使用列表解析来创建 一个由 1~10 的平方组成的列表: 这种表示法的主要优点是简洁易读。for循环代码没有使用列表解析,使用越多就越会发现,列表解析方法编写容易并且简洁。

if __name__ == '__main__':
    print([num * num for num in range(1,11)])
    print('------------------')
    num_list = []
    for i in range(1, 11):
       num_list.append(i * i)
    print(num_list)

在看3个小例子:第一个表示获取1~10的立方,第二个表示修改现有列表的字符串,第三个表示将列表中的数字翻倍并减去3.

使用列表解析过滤筛选需要的结果集,如下:

list = []
    num = [-1, 0, 6, -4, -2, 3, 8, -12]
    for n in num:
        if n > 0:
            list.append(n)

对比使用常规循环,可以体现出列表解析更加简洁易读!其它还可以实现诸如删除特定字符串的功能,有兴趣的朋友们可以实现一下删除特定字符串的列表解析,十分简单。

到此这篇关于Python数据结构列表的文章就介绍到这了,更多相关Python数据结构列表内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python内置数据结构列表与元组示例详解

    目录 1. 序列 2. 列表 2.1 列表的特性 2.1.1 列表的连接操作符和重复操作符 2.1.3 列表的索引 2.1.4 列表的切片 2.1.5 列表的循环(for) 2.2 列表的基本操作(增删改查) 2.2.1 列表的增加 2.2.2 列表的修改 2.2.3 查看 2.2.4 列表的删除 2.2.5 其他操作 3. 元组 3.1 元组的创建 3.2 元组的特性 3.3 元组的命名 4. 深拷贝和浅拷贝 4.1 值的引用 4.2 浅拷贝 4.3 深拷贝 5. is 和 ==的对比 总结

  • Python数据结构列表

    目录 1 序列 2 列表 2.1 列表函数 2.2 列表排序 2.3 解析列表 正则小练习:匹配出以下字符串所有url, import re def find_url(sentence, show_urls=None, delete_urls=None): r = re.compile( r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([

  • Python中列表、字典、元组、集合数据结构整理

    本文详细归纳整理了Python中列表.字典.元组.集合数据结构.分享给大家供大家参考.具体分析如下: 列表: 复制代码 代码如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] 字典: 复制代码 代码如下: di = {'a':123,'b':'something'} 集合: 复制代码 代码如下: jihe = {'apple','pear','apple'} 元组: 复制代码 代码如下: t = 123,456,'hello' 1.列表 空

  • python数据结构之列表和元组的详解

    python数据结构之 列表和元组 序列:序列是一种数据结构,它包含的元素都进行了编号(从0开始).典型的序列包括列表.字符串和元组.其中,列表是可变的(可以进行修改),而元组和字符串是不可变的(一旦创建了就是固定的).序列中包含6种内建的序列,包括列表.元组.字符串.Unicode字符串.buffer对象.xrange对象. 列表的声明: mylist = [] 2.列表的操作: (1) 序列的分片: 用法:mylist[startIndex:endIndex:step] exam: myli

  • Python实现列表转换成字典数据结构的方法

    本文实例讲述了Python实现列表转换成字典数据结构的方法.分享给大家供大家参考,具体如下: ''' [ {'symbol': 101, 'sort': 1, 'name': 'aaaa'}, {'symbol': 102, 'sort': 2, 'name': 'bbbb'}, {'symbol': 103, 'sort': 3, 'name': 'cccc'}, {'symbol': 104, 'sort': 4, 'name': 'dddd'}, {'symbol': 105, 'sort

  • Python数据结构与算法之列表(链表,linked list)简单实现

    Python 中的 list 并不是我们传统(计算机科学)意义上的列表,这也是其 append 操作会比 insert 操作效率高的原因.传统列表--通常也叫作链表(linked list)--通常是由一系列节点(node)来实现的,其每一个节点(尾节点除外)都持有一个指向下一个节点的引用. 其简单实现: class Node: def __init__(value, next=None): self.value = value self.next = next 接下来,我们就可使用链表的结构来

  • Python数据结构之列表与元组详解

    目录 Python 列表(list): 1.序列介绍: 2.列表的概述: 3.创建一个列表 4.列表的索引 5.列表的分片 6.列表的分片赋值 7.循环遍历列表 8.查找元素与计数 9.列表增加元素: 10.列表删除元素: 11.列表排序 Python 元组(tuple): 1.为什么要将元组设计成为不可变序列 2.创建元组 3.元组的遍历 4.元组的内置函数 Python 列表(list): 1.序列介绍:   序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置

  • Python中列表、字典、元组数据结构的简单学习笔记

    列表 列表是Python中最具灵活性的有序集合对象类型.与字符串不同的是,列表可以包含任何类型的对象:数字.字符串甚至其他列表.列表是可变对象,它支持原地修改的操作. Python的列表是: 任意对象的有序集合 通过偏移读取 可变长度.异构以及任意嵌套 属于可变序列的分类 对象引用数组(列表中的存储的是对象的引用,而不是对象的拷贝) 实际应用中的列表 >>基本列表操作 由于列表是序列,它支持很多与字符串相同的操作.列表对"+"和"*"操作的响应与字符串很

  • python数据结构之图的实现方法

    本文实例讲述了python数据结构之图的实现方法.分享给大家供大家参考.具体如下: 下面简要的介绍下: 比如有这么一张图: A -> B     A -> C     B -> C     B -> D     C -> D     D -> C     E -> F     F -> C 可以用字典和列表来构建 graph = {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['D'], 'D': ['C'], 'E': [

  • Python数据结构与算法之图结构(Graph)实例分析

    本文实例讲述了Python数据结构与算法之图结构(Graph).分享给大家供大家参考,具体如下: 图结构(Graph)--算法学中最强大的框架之一.树结构只是图的一种特殊情况. 如果我们可将自己的工作诠释成一个图问题的话,那么该问题至少已经接近解决方案了.而我们我们的问题实例可以用树结构(tree)来诠释,那么我们基本上已经拥有了一个真正有效的解决方案了. 邻接表及加权邻接字典 对于图结构的实现来说,最直观的方式之一就是使用邻接列表.基本上就是针对每个节点设置一个邻接列表.下面我们来实现一个最简

  • Python过滤列表用法实例分析

    本文实例讲述了Python过滤列表用法.分享给大家供大家参考,具体如下: 过滤列表 [mapping-expression for element in source-list if filter-expression] 以 if 开头的是过滤器表达式,过滤器表达式可以是返回值为真或者假(在 Python 中是 几乎任何东西)的任何表达式.任何经过滤器表达式演算值为元素的真都可以包含在映射中.其它的元素都将忽略,它们不会进入映射表达式,更不会包含在输出列表中. >>> li = [&qu

随机推荐