Python中列表(list)的详细使用

文章目录

  • 前言
  • 一、列表的创建
  • 1.使用中括号[]
  • 2.使用list()函数
  • 二、列表元素的访问
  • 1.使用索引
  • 2.使用切片
  • 三、列表的遍历
  • 1.使用in操作符
  • 2.使用range()函数
  • 3.使用iter()函数
  • 4.使用enumerate()函数
  • 四、列表的排序
  • 1.sort()方法
  • 2.sorted()方法
  • 3.reverse()方法
  • 五、列表的其他操作
  • 1.元素的添加
  • (1) append()方法
  • (2) extend()方法
  • (3) insert()方法
  • 2.元素的删除
  • (1) del语句
  • (2) remove()方法
  • (3) pop()方法
  • 3.元素的修改
  • 4.计元素数
  • 5.元素索引的查找
  • 6.列表的清空
  • 7.列表的复制
  • 8.列表脚本操作符
  • 9.列表推导式
  • 前言

    列表是Python中常见的数据结构,处处都有它的身影。列表中的数据项可以是不同的数据类型,如整型、字符、字典、列表等。这也是它的特点。我们可以对列表进行添加、删除、修改、排序等操作。

    一、列表的创建

    1.使用中括号[]

    每个元素使用逗号间隔,可嵌套创建。

    l1 = []#创建空列表l1
    print(type(l1))
    print(l1)
    
    l2 = [1,'dormitory',[{12,456},'忙']]#不同元素类型组成的列表
    print(l2)
    

    运行结果如下:
    中括号[]创建列表

    2.使用list()函数

    l1 = list('I love Python')#字符串为可迭代类型
    print(l1)
    l2 = list([1,'dormitory',[{12,456},'忙']])#列表为可迭代类型
    print(l2)
    

    运行结果如下:
    list()函数创建列表

    二、列表元素的访问

    1.使用索引

    l1 = [1,'dormitory',[{12,456},'忙']]
    print(l1[2])#访问索引为2的元素,正数下标从0开始
    print(l1[-2])#访问索引为-2的元素,负数下标从-1开始
    print(l1[2][1])#访问二维列表中的元素
    

    运行结果如下:
    索引方式访问元素

    2.使用切片

    l1 = ['I','l','o','v','e','p','y','t','h','o','n']
    print(l1[3:])#访问索引为3到末尾的元素
    print(l1[2:6:2])#访问2~5,步长为2的元素,左闭右开
    

    运行结果如下:
    切片方式访问元素

    三、列表的遍历

    1.使用in操作符

    l1 = ['I','love','python']
    for i in l1:
        print(i,end=' ')
    

    运行结果如下:
    in操作符遍历列表

    2.使用range()函数

    l1 = ['I','love','python']
    length = len(l1)#求列表l1的长度
    for i in range(length):
        print(l1[i],end=' ')
    

    运行结果如下:
    range()函数遍历列表

    3.使用iter()函数

    l1 = ['I','love','python']
    for i in iter(l1):
        print(i,end=' ')
    

    运行结果如下:
    iter()函数遍历列表

    4.使用enumerate()函数

    遍历列表元素及其下标。

    l1 = ['I','love','python']
    for i in enumerate(l1):
        print(i,end=' ')
    

    运行结果如下:
    enumerate()函数遍历列表

    四、列表的排序

    1.sort()方法

    语法格式:

    sort(key=none,reverse=False)
    
  • key表示排列规则。
  • reverse表示排序方式,默认值为False。False表示升序,True表示降序。
  • 使用该方法之后,原列表会被排序后的列表覆盖
  • 举例:

    l1 = [5,6,2,8,1,3,4,9,7]
    l1.sort()#默认升序排序
    print(l1)
    l1.sort(reverse=True)#降序排序
    print(l1)
    

    运行结果如下:
    sort()方法排序

    2.sorted()方法

    将列表元素按要求排列,不覆盖原列表。

    l1 = [5,6,2,8,1,3,4,9,7]
    l2 = sorted(l1)
    l3 = sorted(l1, reverse=True)
    print(l1)#原列表未被覆盖
    print(l2)#升序排列的列表
    print(l3)#降序排列的列表
    

    运行结果如下:
    sorted()方法排序

    3.reverse()方法

    将列表元素降序排列,覆盖原列表。

    l1 = [5,6,2,8,1,3,4,9,7]
    l1.reverse()
    print(l1)#原列表被覆盖
    

    运行结果如下:
    reverse()方法排序

    五、列表的其他操作

    1.元素的添加

    (1) append()方法

    用于在列表末尾添加新的元素。

    语法格式:

    list.append(obj)
    

    举例:

    l1 = [5,'abs','sqrt']
    l1.append('function')#添加元素'function'
    print(l1)
    

    运行结果如下:
    append()方法添加

    (2) extend()方法

    用于在列表末尾一次性添加另一个列表中的所有元素。

    语法格式:

    list.exend(seq)
    

    seq表示列表,可以是字典、元组、集合、字典,若为字典,则仅会将作为元素依次添加到原列表的末尾

    举例:

    l1 = [5,'abs','sqrt']
    l1.extend(['function','method','approach'])
    print(l1)
    

    运行结果如下:
    extend()方法添加

    (3) insert()方法

    用于将元素插入列表的指定位置

    语法格式:

    list.insert(index,obj)
    

    index表示对象obj需要插入的索引位置,obj表示要插入列表的对象。
    若指定的位置不存在,则插入到列表末尾。

    举例:

    l1 = ['chinese','english','physics']
    l1.insert(1,'math')#在索引为1的位置插入
    print(l1)
    l1.insert(6,'chemistry')#该索引不存在,即越界,在末尾插入
    print(l1)
    

    运行结果如下:
    insert()方法添加

    2.元素的删除

    (1) del语句

    删除列表中指定位置的元素。

    l1 = ['chinese','english','physics']
    del l1[1]
    print(l1)
    

    运行结果如下:
    del语句删除

    (2) remove()方法

    用于移除列表中的某个元素。

    语法格式:

    list.remove(obj)
    

    obj表示要移除的对象,若列表中有多个匹配的元素,只会移除匹配到的第一个元素。

    举例:

    l1 = ['chinese','english','physics','english']
    l1.remove('english')#移除首个匹配的元素
    print(l1)
    

    运行结果如下:
    remove()方法删除

    (3) pop()方法

    用于移除列表中的某个元素。

    语法格式:

    list.pop([index=-1])
    

    index是可选参数,为要移除列表元素的索引值,默认index=-1,删除最后一个列表值。

    举例:

    l1 = ['chinese','english','physics','english']
    l1.pop(1)#移除列表索引值为1的元素
    print(l1)
    l1.pop()#移除最后一个元素
    print(l1)
    

    运行结果如下:
    pop()方法移除

    3.元素的修改

    通过索引获取元素并对其重新赋值。

    l1 = ['chinese','english','physics','english']
    l1[1]='math'
    print(l1)
    

    运行结果如下:
    修改元素

    4.计元素数

    l1 = ['chinese','english','physics','english']
    print("english的个数为:",l1.count('english'))
    

    运行结果如下:
    计数

    5.元素索引的查找

    查找元素出现的第一个索引

    l1 = ['chinese','english','physics','english']
    print("english的索引为:",l1.index('english'))
    

    运行结果如下:
    查找元素位置

    6.列表的清空

    l1 = ['chinese','english','physics','english']
    l1.clear()
    print(l1)
    

    运行结果如下:
    清空列表

    7.列表的复制

    l1 = ['chinese','english','physics']
    l2 = l1.copy()#不等同于=,l1和l2的地址不一样,内容一样
    print(id(l1),id(l2))
    print(l1,l2,end='\n\n')
    
    a = [1,2]
    b = a#用=赋值
    c = []
    c = a#创建列表c,再用=赋值
    d = a[:]#将a切片访问赋值给d
    print(a,b,c,d)#输出a,b,c,d,都一样
    print(id(a),id(b),id(c),id(d))#输出a,b,c,d的地址,a,b,c指向一个地址,d分配了新地址
    b[1]='b'
    print(a,b,c,d)#更改列表b索引为1的元素,指向同一地址的a,b,c一起更改
    

    运行结果如下:
    列表的复制

    8.列表脚本操作符

    print(['apple','banana']+['strawberry','cherry'])#列表连接
    
    print(['apple','banana']*3)#列表重复
    
    print('cherry' in ['apple','banana'])#判断是否在列表中
    print('cherry' not in ['apple','banana'])#判断是否在列表外
    
    print(len(['apple','banana',1]))#列表长度
    

    运行结果如下:列表脚本操作符

    9.列表推导式

    列表推导式又叫列表解析式,可以更加简便地创建列表。
    语法格式:

    variable = [expr for value in collection]
    或
    variable = [expr for value in collection if condition]
    变量			表达式				收集器			条件
    

    举例:

    l1 = [i*3 for i in range(15) if i%2==0]#对0到14之间的偶数乘3操作
    print(l1)
    
    l2 = [[col for col in range(5)] for row in range(6)]#创建6行5列的嵌套列表
    print(l2)
    l2[1].append(5)#在二维列表的索引为1的行加入一个元素5
    print(l2)
    
    l3 = [x+y for x in 'abc' for y in 'ABC']#创建双层循环列表
    print(l3)
    

    运行结果如下:
    列表推导式

    作者:忙_

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python中列表(list)的详细使用

    发表回复