Python变量4-标准数据类型-列表

  • 列表的定义
  • 列表的创建
  • []创建
  • 通过全局函数list()创建
  • 列表的访问
  • 索引和切片
  • for,while循环遍历
  • 带索引的遍历
  • 列表中的子列表访问
  • 列表的方法
  • 列表中添加元素
  • 列表并列表
  • 删除列表元素
  • 列表其它方法
  • 列表的常用运算符
  • 列表的比较
  • 同顺序列表比较
  • 不同顺序列表比较
  • 包含比较


列表的定义

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

列表的创建

[]创建

  • 使用[],各元素之间逗号间隔
  • 列表中的元素也可以是列表
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]]

Python怎么输出列表的名称 python输出列表的类型_运算符

列表的常用运算符

方法

描述

举例

+

并上另一个列表,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