美文网首页
Python list方法使用详解

Python list方法使用详解

作者: Minority | 来源:发表于2020-02-10 16:54 被阅读0次

    Python列表(list)的相关操作及方法

    一、list列表

    1.概述:

    本质:list列表的本质是一种有序的集合

    2.创建列表

    语法: 列表名 = [元素1,元素2,元素3…]
    说明:列表中的选项被称为元素,跟string类似,下标也是从0开始计数

    使用:创建列表

    #创建空列表
    list1 = []
    list1 = list()#格式化
    
    #创建带有元素的列表
    list2 = [10, 20, 30, 10]
    print(list2)
    #结果
    [10, 20, 30, 10]
    

    注意:在列表中元素的数据类型可以不同(灵活性)表中的元素类型可以是任意python中的基本数据类型或者是自定义的数据类型

    list3 = [33, "good", True, 10.32]
    print(list3)
    #结果
    [33, 'good', True, 10.32]
    
    3.列表元素的访问
    3.1 列表的取值

    功能:访问list列表中元素值
    语法:列表名[索引]
    list1[index]
    index取值范围[0,len(list1))
    len(list)表示列表的长度

    list4 = [22, 33, 12, 32, 45]
    #下标从0开始,最大值为len(list4)-1
    print(list4[0])
    

    注意:当索引值大于len(list4)-1的时候,会出现以下错误:

    print(list4[5])
    IndexError: list index out of range
    

    这个错误就是下标越界【下标超出了可表示的范围】

    3.2 列表元素的替换

    功能:更改列表元素的值
    语法:列表名[下标] = 值
    list1[index] = 值

    list4 = [22, 33, 12, 32, 45]
    list4[0] = "hello"
    print(list4[0])
    
    4.列表操作
    4.1 列表组合

    语法: 列表3 = 列表1 + 列表2
    将列表1和列表2中的元素取出,组成一个新的列表并返回。

    list1 = [1, 2, 3]
    list2 = ['hello', 'yes', 'no']
    list3 = list1 + list2
    print(list3)
    #结果
    [1, 2, 3, 'hello', 'yes', 'no']
    
    4.2 列表重复

    语法: 列表2 = 列表1 * n

    list1 = [1, 2, 3]
    list2 = list1 * 3
    print(list2)
    #结果
    [1, 2, 3, 1, 2, 3, 1, 2, 3]
    
    4.3 判断元素是否在列表中

    语法:元素 in 列表
    若存在则返回True,否则返回False

    list1 = [1, 2, 3]
    print(1 in list1)
    #结果
    True
    
    4.4 列表截取

    语法:list1[start:stop:step]
    参数一:表示截取的开始下标值,默认为0
    参数二:表示截取的结束下标值,默认为列表末尾
    参数三:表示截取的步长,默认为1,可指定
    注意:1.截取区间[start, end),左闭右开
    2.list1[::-1]可以获得倒叙的列表

    list1 = ["hello",2,True,False,3.14]
    list2 = list1[:]
    list3 = list1
    print(list1[0:3:2])
    print(list1[::-1])
    print(list1[:3:-1])
    print(list1[3::-1])
    #结果
    ['hello', True]
    [3.14, False, True, 2, 'hello']
    [3.14]
    [False, True, 2, 'hello']
    
    4.5 二维列表

    语法:列表 =[列表1,列表2,列表3,… ,列表n]
    列表中元素可以是Python的基本数据类型,也可以是自定义的数据类型。
    当列表中存放的元素刚好又是列表的时候,我们可以称这个列表为二维列表

    #创建二维列表,即列表中的元素还是列表
    list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]
    

    二维列表取值(访问)

    语法:列表名[下标1][下标2]
    注意:下标1代表第n个列表(下标从0开始),下标2代表第n个列表中的第n个元素

    list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]
    print(list1[0][0])
    
    5.列表的方法
    5.1 list.append(元素/列表)

    功能:在列表中末尾添加新的元素【在原本的列表中追加元素】
    注意:append()中的值可以是列表也可以是普通元素

    >>> list1 = [3, 4, 6]
    >>> list1.append(6)
    >>> print(list1)
    [3, 4, 6, 6]
    
    5.2 list.extend(列表)

    功能:在列表的末尾一次性追加另外一个列表中的多个值
    注意:extend()中的值只能列表/元组[一个可迭代对象(可加在for循环之后的)],打碎可迭代对象之后的元素再加入列表中,不能是元素

    >>> list1 = [1,2,3]
    >>> list2 = [3, 4,5]
    >>> list1.extend(list2)
    >>> print(list1)
    [1, 2, 3, 3, 4, 5]
    
    5.3 list.insert(下标值, 元素/列表)

    功能:在下标处插入元素,不覆盖原本的数据,原数据向后顺延
    注意:插入的数据可以是元素也可以为列表

    >>> list1 = [1,2,3]
    >>> list1.insert(1,0)
    >>> print(list1)
    [1, 0, 2, 3]
    >>> list1.insert(1,[2, 4, 8])
    >>> print(list1)
    [1, [2, 4, 8], 0, 2, 3]
    
    5.4 list.pop(下标值)

    功能:移除列表中指定下标处的元素(默认移除最后一个元素),并返回移除的数据
    注意此处会返回删除数据

    >>> list1 = [1, [2, 4, 8], 0, 2, 3]
    >>> list1.pop()
    3
    >>> print(list1)
    [1, [2, 4, 8], 0, 2]
    >>> list1.pop(2)
    0
    >>> print(list1)
    [1, [2, 4, 8], 2]
    
    5.5 list.remove(元素)

    功能:移除列表中的某个元素第一个匹配结果

    >>> list1 = [1, 2, 3]
    >>> list1.remove(2)
    >>> print(list1)
    [1, 3]
    
    5.6 list.clear()

    功能:清除列表中所有的数据

    >>> list1 = [1, 2, 3]
    >>> list1.clear()
    >>> print(list1)
    []
    
    5.7 list.index(object[, start][, stop])

    功能:从指定的范围的列表中找出某个值(object)第一匹配的索引值
    查询范围[start,stop),若不指定范围,则默认是整个列表。

    >>> list1 = [1, 2, 3]
    >>> list1.index(2)
    1
    >>> list1.index(4)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: 4 is not in list
    

    注意:若在列表中找不到这个元素,则会报错。

    5.8 list.count(元素)

    功能:查看元素在列表中出现的次数

    >>> list1 = [1, 2, 3, 1]
    >>> list1.count(1)
    2
    
    5.9 len(list)

    功能: 获取元素列表个数(长度)

    >>> list1 = [1, 2, 3, 1]
    >>> len(list1)
    4
    
    5.10 max(list)

    功能:获取列表中的最大值

    >>> list1 = [1, 2, 3, 1]
    >>> max(list1)
    3
    
    5.11 min(list)

    功能:获取列表中的最小值

    >>> list1 = [1, 2, 3, 1]
    >>> min(list1)
    1
    

    注意:比较的是ASCII值

    5.12 list.reverse()

    功能: 将列表中的元素倒叙,在原列表进行操作,不返回新的列表。

    list1 = ["hello1","good1","nice","good","hello"]
    print(id(list1))
    list1.reverse()
    print(list1)
    print(list1.reverse())
    print(id(list1))
    #结果
    2158912823880
    ['hello', 'good', 'nice', 'good1', 'hello1']
    None
    2158912823880
    
    5.13 list.sort()

    list1.sort(reverse=False)
    功能:将list1中的元素进行升序排列【默认reverse=False】当reverse为True的时候,降序排列。
    在原列表进行排序

    >>> list1 = [1, 2, 3, 1]
    >>> list1.sort()
    >>> print(list1)
    [1, 1, 2, 3]
    
    5.14 赋值拷贝

    语法:list1 = [1, 2, 3]
               list2 = list1
    特点:共用同一块内存空间,更改其中任意一个变量,其他变量都会受到影响。

    list1 = [1,2,3,4,[1,2,3,4]]
    list2 = list1
    print(id(list1))
    print(id(list2))
    list2[-1] = True
    print(list2)
    print(list1)
    #结果
    1585735384392
    1585735384392
    [1, 2, 3, 4, True]
    [1, 2, 3, 4, True]
    

    注意:赋值拷贝为引用拷贝,类似于快捷方式

    5.15 赋值拷贝

    语法:list1 = [1, 2, 3]
               list2 = list1.copy()
    注意:只适用于一维列表;浅拷贝为一维内存拷贝,开辟了新的内存空间。不完全内存拷贝,对于一维列表重新开辟了一块内存空间,但若出现二维列表的情况下,因为二维列表存放在一维列表中存放的是列表的地址,因此,若出现二维列表相当于间接的引用了同一块内存区域(即二维列表还是共用内存)。

    >>> list1 = [1, 2, 3, 1]
    >>> list2 = list1.copy()
    >>> print(list2)
    [1, 2, 3, 1]
    >>> print(id(list2))
    4314525320
    >>> print(id(list1))
    4314524808
    
    import copy
    list1 = [1,2,3,4,[1,2,3,4]]
    list3 = list1.copy()
    list3[-1][-1] = True
    print(id(list1))
    print(id(list3))
    print(list1)
    print(list3)
    #结果
    #一维存储地址不同
    1614254026312
    1614254024904
    #二维存储地址相同,伴随发生改变
    [1, 2, 3, 4, [1, 2, 3, True]]
    [1, 2, 3, 4, [1, 2, 3, True]]
    
    5.16 深拷贝

    import copy
    list2 = copy.deepcopy(list1)
    完全内存拷贝,相当于将list1中的所有列表元素重新复制了一份,对于多维的也重新开辟了新的内存空间

    list1 = [1,2,3,4,[1,2,3,4]]
    list4 = copy.deepcopy(list1)
    list4[-1][-1] ="hello"
    print(id(list1))
    print(id(list4))
    print(list1)
    print(list4)
    #结果
    #一维存储地址不同
    2215608102408
    2215608101128
    #二维存储地址不同,不伴随发生改变
    [1, 2, 3, 4, [1, 2, 3, 4]]
    [1, 2, 3, 4, [1, 2, 3, 'hello']]
    
    5.17 list(元组)

    功能:将元组转为列表

    >>> list1 = list((1, 2, 3, 4))
    >>> print(list1)
    [1, 2, 3, 4]
    
    6.列表的遍历
    6.1 使用for循环遍历列表

    语法:
             for 变量名 in 列表 :
    ​               语句
    功能:for循环主要用于遍历列表
    遍历:指的是依次访问列表中的每一个元素,获取每个下标对应的元素值。
    说明:按照顺序获取列表中的每个元素,赋值给变量名,再执行语句,如此循环往复,直到取完列表中所有的元素为止

    说明:按照顺序获取列表中的每个元素,赋值给变量名,再执行语句,如此循环往复,直到取完列表中所有的元素为止

    >>> list1 = ['hello', 78, '你好', 'good']
    >>> for item in list1:
    ...     print(item)
    ... 
    hello
    78
    你好
    good
    
    6.2 使用while循环遍历列表[使用下标循环]

    语法:
       下标 = 0
        while 下标 < 列表的长度:
             ​ 语句
    ​          下标 += 1

    6.3 同时遍历下标与元素
    语法:
    
    for 下标,变量 in enumerate(列表)
              语句
    
    >>> list1 = ['hello', 78, '你好', 'good']
    >>> for index,item in enumerate(list1):
    ...     print(index, item)
    ... 
    0 hello
    1 78
    2 你好
    3 good
    
    enumerate()[枚举]函数用于一个可遍历的数据对象(如列表,元组或者字符串)组合为一个索引序列,同时列出数据与数据下标,一般使用在for循环中
    enumerate(obj, [start =0])
    obj:一个可迭代对象
    start:下标起始位置
    

    参考:https://blog.csdn.net/hu1258123819/article/details/91895869

    相关文章

      网友评论

          本文标题:Python list方法使用详解

          本文链接:https://www.haomeiwen.com/subject/zwaaxhtx.html