Python标准数据类型-列表

列表的定义

  • 是一种有序和可更改的集合
  • 允许重复的成员
  • 列表的元素不需要具有相同的类型,但建议使用相同类型

列表的创建

[]创建

  • 使用[],各元素之间逗号间隔
  • 列表中的元素也可以是列表
list1 = ['physics', 'chemistry', 1997, 2000, [1,2,3], {"a":5, "b":6}, {7,8,9}]
list2 = []		#空列表

通过全局函数list()创建

  • list() 方法用于将序列等转换为列表
  • 字典只提取其key转换为类别
list1 = list()		#列表
list1=list("Hello World"); print (type(list1), list1)
<class 'list'> ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
list1=list({"a":1, "b":2}); print (type(list1), list1)
<class 'list'> ['a', 'b']

列表的访问

索引和切片

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,直到字符串长度的相反数
  • list1[start🔚step]start和end为空的时候,默认是全选,step为空时默认是1
  • 当省略前面的参数时,必须加冒号
a=['BeiJing', 'SH', "ShenZhen", "GuangZhou", "ChengDu", "XiAn"]		#列表
a[:]; a[::]		# 访问列表全部元素
a[1:]			# index为1之后所有元素
a[:5]			# index为5之前的所有元素但不包括index=5
a[::2]			# 从index为0开始,以步长为2来选择元素
a[::-1]			# 列表逆序

for,while循环遍历

  • for i_list1 in list1,i_list1循环列表中的每一个元素
  • while i_list1 < len(names)…i_list1 += 1…循环列表中的index

带索引的遍历

  • enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
province = ["上海", "江苏", "浙江"]
for idx, i_province in enumerate(province):
	print(idx, i_province)

result:
0 上海
1 江苏
2 浙江

列表中的子列表访问

  • list1[index1][index2]

列表的方法

列表中添加元素

  • list1.append(object),在末尾添加一个元素
  • list1.insert(index, object),在指定位置添加一个元素
a=['BeiJing', 'SH']; print("更改之前", a, id(a))
a.append("NanChang"); print("更改之后ID", a, id(a))
result:
更改之前 ['BeiJing', 'SH'] 2177134554248
更改之后ID ['BeiJing', 'SH', 'NanChang'] 2177134554248
a=['BeiJing', 'SH']; print("更改之前", a, id(a))
a.insert(1, "NanChang"); print("更改之后ID", a, id(a))
result:
更改之前 ['BeiJing', 'SH'] 2177134513352
更改之后ID ['BeiJing', 'NanChang', 'SH'] 2177134513352

列表并列表

  • list1.extend(iterable) 在末尾添加可迭代的对象,ID不变。
  • list1 + list2,在末尾并上另一个列表,ID改变,只能列表加上列表。
list1=list("Hello"); print(list1, id(list1))
list1=list1+[1,2,3]; print(list1, id(list1))
result:
['H', 'e', 'l', 'l', 'o'] 2177135895496
['H', 'e', 'l', 'l', 'o', 1, 2, 3] 2177134449736

删除列表元素

  • list1.remove(value),删除第一个出现的元素,有元素时,返回None,没有该元素时,报错
  • list1.pop(index=-1),删除指定位置的元素,有该index时,返回其所对应的元素,没有该index时,报错
  • list1.clear(),删除列表中的所有元素,变为空列表
  • del list1,删除该列表

列表其它方法

方法描述举例
list[index]=value改变列表中某个元素的值a=[1,2,3]; a[2]=66
list.count(obj)统计某个元素在列表中出现的次数[1,2,4,2,4,2,2,2].count(2) => 5
list.index(obj)从列表中找出某个值第一个匹配项的索引位置[1,2,4,2,4,2,2,2].index(4) => 2
list.reverse()反向列表中元素list1=[1,2,4]; list1.reverse() => [4, 2, 1]
list.sort(reverse=False)进行排序list1=[1,8,6];list1.sort(reverse=True);print(list1) => [8, 6, 1]
list.copy()列表浅拷贝对于多维列表,只是第一维深拷贝了(嵌套的List保存的是地址),其内层的list元素改变了,原列表也会变。
len(list)返回列表长度len([1,2,[3,4,5]]) => 3
sorted((iterable, reverse=False))返回排序后的新列表sorted([1,5,3]) => [1, 3, 5]
max(iterable)/max(arg1,arg2…)返回其中最大的max([1,5,8]) =>8
min(iterable)/min(arg1,arg2…)返回其中最小的min([1,5,8]) =>1
list(seq)将一个可迭代对象转为列表list((1,5,[1,2,3])) =>[1, 5, [1, 2, 3]]

在这里插入图片描述

列表的常用运算符

方法描述举例
+并上另一个列表,ID改变[1,2,3]+[4,5,6]
*复制列表元素添加至原列表后面[3]*5 => [3,3,3,3,3]
in, not in判断一个元素是否在列表中3 in[1,3] =>True
is is not判断两个列表是否引用同一块空间a=[1], b=[1], a is not b => True

列表的比较

同顺序列表比较

  • 同顺序列表比较,使用==
a=[1,2,3]; b=[1,3,2]
result:False

不同顺序列表比较

  • 可以先对列表进行排序,再用==比较,使用list.sort()方法或者sorted函数

包含比较

  • 使⽤set()转成集合进⾏包含⽐较
list1=[1,2,4,3,5,7,9]
list2=[1,3,4]
set(list2).issubset(set(list1))
result:True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值