python笔记——列表

列表

  • 变量可以存储一个元素,而列表是一个“容器”,可以存储N个元素的引用,并且这N个元素可以是不同的数据类型
  • 列表示意图:
    在这里插入图片描述

列表的两种创建方式

列表有两种创建方式,①使用中括号[],②使用内置函数list()

  • 使用中括号[],元素之间使用英文逗号进行分隔
lst1 = ['hello', 'python', 98]
  • 使用内置函数list()
lst2 = list(['hello', 'python', 98])

列表的特点

  • 列表元素按顺序有序排序
  • 索引映射唯一一个数据
  • 列表可以存储重复数据
  • 任意数据类型混存
  • 根据需要动态分配和回收内存(不用担心元素太多存不下)

列表的查询操作

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

  • 如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引
  • 如果查询的元素在列表中不存在,则会抛出ValueError
  • 还可以在指定的start和stop之间进行查找 eg:
print(lst.index('Hello', 1, 3)) #从[1,3)之间寻找lst第一个Hello的索引

2、通过索引获取列表中的单个元素

  • 正向索引从0到N-1 eg:lst[0]
  • 逆向索引从-N到-1 eg:lst[-N]
  • 指定的索引不存在,抛出indexError

3、通过切片获取列表中的多个元素

  • 语法格式:列表名[start : stop : step]
  • 切片的结果:原列表片段的拷贝,即产生一个新的列表对象
  • 切片的范围:[start, stop)
  • step默认为1:简写为[start:stop]
  • step为正数:[ : stop : step]表示切片的第一个元素默认为列表的第一个元素,从start开始往后计算切片;[start : : step]表示切片的最后一个元素默认为列表的最后一个元素,从start开始往后计算切片
  • step为负数:[ : stop : step]表示切片的第一个元素默认为列表的第一个元素,从start开始往前计算切片;[start : : step]表示切片的最后一个元素默认为列表的最后一个元素,从start开始往前计算切片。eg:[6 : 0 : -1]

列表的判存和遍历

  • 列表的判存用in和not in
  • 列表的遍历用for-in循环:for 迭代遍历 in 列表名 :

列表元素的添加操作

方法/其他操作描述
append()在列表的末尾添加一个元素
extend()在列表的末尾添加至少一个元素
insert(index, item)在列表的任意位置添加一个元素
切片在列表的任意位置添加至少一个元素(个人觉得其实更像替换)
lst = ['Hello', 'Python', '98', '97']
lst.append(['Hello', 'World'])
print(lst)   #['Hello', 'Python', '98', '97', ['Hello', 'World']]

lst = ['Hello', 'Python', '98', '97']
lst.extend(['Hello','World'])
print(lst)   #['Hello', 'Python', '98', '97', 'Hello', 'World']

lst = ['Hello', 'Python', '98', '97']
lst.insert(2, 90)
print(lst)   #['Hello', 'Python', 90, '98', '97']

lst = ['Hello', 'Python', '98', '97']
lst3 = ['!', 'True']
lst[1:] = lst3
print(lst)   #['Hello', 'Python', '!', 'True']

列表元素的删除操作

方法/其他操作描述
remove(item)一次删除一个元素;重复元素只删除一个;元素不存在抛出ValueError
pop(index)删除一个指定索引位置上的元素;指定索引不存在抛出IndexError;不指定索引则删除列表中的最后一个元素
切片一次删除至少一个元素(实际上是用一个空列表替换要删除的元素
clear()清空列表
del删除列表

利用切片的删除操作:

#切片操作会产生一个新的列表对象
lst = list[10, 40, 50, 60]
new_lst = lst[1:3]
print('原列表:',lst)   #原列表:[10, 40, 50, 60]
print('切片后的列表:'new_lst)   #切片后的列表:[40, 50]

#不产生新的列表对象,而是删除原列表中的内容
lst[1:3] = []
print(lst)   #[10, 60]

列表元素的修改操作

  • 为指定索引的元素赋予一个新值: lst[index] = item
  • 为指定的切片赋予一个新值: lst[start: stop] = item

列表元素的排序操作

常见的两种排序方式

  • 调用sort()方法,列表中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True,进行降序排序。sort()排序是在原列表上进行的
  • 调用内置函数sorted(),可以指定reverse=True,进行降序排序。原列表不发生改变,而是产生一个新的列表对象
lst = [10,20,50,40]
print(lst,id(lst))   #[10,20,50,40],1632705897408
lst.sort()
print(lst,(id(lst)))   #[10,20,40,50],1632705897408
lst = [10,20,50,40]
new_lst = sorted(lst)
print(lst)   #[10,20,50,40]
print(new_lst)   # [10,20,40,50]

列表生成式

列表生成式就是生成列表的一个公式

  • 语法:[表示列表元素的表达式 for 自定义变量 in 可迭代对象]
  • 注意事项:“表示列表元素的表达式”中通常包含自定义变量
lst = [i*i for i in range(1,10)]
print(lst)   #[1,4,9,16,25,36,49,64,81]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

联邦学习小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值