Python_note_006(Python中的列表,以及列表的增删改查、排序操作)

列表的创建

  • 使用中括号(元素之间使用逗号分开)

    ls=['zhangsan','lisi',200,15.5]
    
  • 使用内置函数list

    ls2=list(['zhangsan','lisi',200,15.5])
    

列表的特点

  • 列表的元素是按顺序排列的

  • 索引映射唯一一个数据

  • 列表可以存储重复数据

  • 任意数据类型混存

  • 根据需要动态分配和回收内存

    #列表 混存任意数据类型
    ls=['zhangsan','lisi',200,15.5]
    print(id(l))
    print(type(l))
    print(l)
    #索引映射唯一一个数据 列表可以存储重复数据
    ls2=list(['zhangsan','zhangsan',200,15.5])
    print(l2[0],l2[-1])#正向索引0到N,逆向索引-N到-1
    

列表的查询操作

  • 获取列表中指定元素的索引用 .index()

    #.index()查询索引
    ls3=list(['zhangsan','zhangsan',200,15.5])
    #如果列表中有相同元素,只返回相同元素的第一个元素的索引。
    #如果查询的元素列表不存在,则报异常ValueError: '***' is not in list
    print(ls3.index('zhangsan'))
    #指定索引范围内查找指定的索引
    print(ls3.index('zhangsan',1,3))
    
  • 获取列表中的单个元素

    #正向索引0到N,逆向索引-N到-1
    l4=list(['lisi',123,'wangwu',20.5])
    print(l4[2])#查看索引为2的元素
    print(l4[-2])#查看索引为-2的元素
    #如果查找的索引不存在会报错IndexError: list index out of range
    
  • 获取列表的多个元素

    语法格式:列表名[start: stop: step]

    #获取列表的多个元素
    #---------步长step为正数的情况--------------
    ls=[13,25,2131,123,135,431]
    # start不写,默认是从索引为0开始 如果不写步长step,默认是步长就是1
    ls2=ls[1:4:2]
    print('原列表',id(ls))
    print('切的分段',id(ls2))
    print(ls2)
    #---------步长step为负数的情况--------------
    ls3=ls[::-1]#输出结果[431, 135, 123, 2131, 25, 13]
    ls4=ls[5:2:-1]#输出结果[431, 135, 123]
    print(ls3,ls4)
    
  • 判断指定元素在列表中是否存在

    #not in 和 in
    ls=[13,25,2131,123,135,431]
    print(13 not in ls)
    print(13 in ls)
    
  • 列表元素的遍历

    ls=[13,25,2131,123,135,431]
    for n in ls:
        print(n)
    
  • 列表元素的添加操作

    #列表名.append()在列表的末尾添加一个元素
    ls=[13,25,2131,123,135,431]
    print('原列表',ls)
    ls.append('张三')
    print('添加后的列表',ls)
    #列表名.extend()向列表的末尾一次性添加多个元素
    ls2=['zhangsan','lisi']
    ls.extend(ls2)
    print(ls)
    #列表名.insert()在任意位置上添加一个元素
    ls.insert(2,'什么')
    print(ls)
    #在任意位置添加n个元素(切片)
    #把切掉的位置用一个新的列表添加进去
    ls[1::]=[True,False]
    print(ls)
    
  • 列表元素的删除操作

    #remove()方式,从列表删除一个元素,如果有重复只删除一个
    ls.remove(13)
    #ls.remove(1231223)如果指定的元素不存在,就会报错:ValueError: list.remove(x): x not in list
    print(ls)
    
    #pop()方式,根据索引移除元素
    ls.pop(1)
    #ls.pop(123)如果指定的索引不存在,就会报错:IndexError: pop index out of range
    print(ls)
    ls.pop()#如果不指定索引,将删除列表的最后一个
    print(ls)
    
    #切片方式,删除至少一个元素,将会产生一个新的对象
    new_ls=ls[1:3]
    print('原列表',ls,id(ls))
    print('新列表',new_ls,id(new_ls))
    #不产生新的列表对象,而是删除原列表的内容
    ls[1:2]=[]
    print(ls,id(ls))
    
    #清除列表中的所有元素
    ls.clear()
    print(ls)
    
    #del 列表名,将列表对象删除
    del ls
    #print(ls) NameError: name 'ls' is not defined
    
  • 列表元素的修改操作

    #一次修改一个值
    ls=[1,2,3,4,5]
    ls[2]=100
    print(ls)
    #指定切片赋予一个新的值
    ls[1:4]=[1000,2000,3000]
    print(ls)
    
  • 列表元素的排序操作

    # 列表的排序操作
    arr=[30,123,23,43,61,12]
    print('排序前的列表:',arr)
    # 调用列表对象sort方法,升序排序------------------
    arr.sort()
    # 如果进行指定reverse参数为True,则为降序排序;  参数为False就为升序排序
    arr.sort(reverse=True)
    print('排序后的列表:',arr)
    arr.sort(reverse=False)
    print('排序后的列表:',arr)
    
    # 第二种排序方式--------------------------
    # 使用内置函数sorted()对列表进行排序,会产生一个新的列表对象;
    arr2=[30,123,23,43,61,12]
    new_arr2=sorted(arr2)
    print('排序后的列表:',new_arr2)
    #进行设置参数指定为降序排序;
    new_arr3=sorted(arr2,reverse=True)
    print('排序后的列表:',new_arr3)
    

列表的生成式

  • 语法格式

    # 列表生成式
    arr=[i*i for i in range(1,10)]
    print(arr)
    
posted @ 2020-09-08 19:50  SkillingYu  阅读(121)  评论(0编辑  收藏  举报