6.1 数据容器:列表

学习Python中的一个重要数据容器:列表

列表的标准定义形式

1
list = [1,2,'三',d,'我是一个元素']

列表的常用操作

正向索引: 注意正向索引时从列表内第一个元素开始,其下标号为0,向右以此为1、2、3……

反向索引:注意反向索引时从列表内倒数第一个元素开始,其下标号为-1,向左以此为-2、-3……

1
list[N]   #其中N为列表元素的下标号,‘list’要换为实际列表名

查询列表中元素的下标号

1
list.index('我是一个元素')	#‘list’要换为实际列表名

特别地,对于嵌套列表需要指定除了所查询元素在其列表的下标号之外的所有下标号,例如

1
2
list = [[1,2,3],[4,5,6],[7,8,9]]
print(list[1].index(5))	#此处我们查询元素‘5’的下标号

修改指定位置的元素

支持正反索引下标号

1
list[2] = 'example'	#列表[下标] = 值

列表的插入

1
2
3
list = [1,2,3,4]
list.insert(1,'Hello')	#列表.insert(下标,值)	在所填下标之前插入一个值
print(list)

列表的追加

追加单个元素

1
2
3
list = [1,2,3,4]
list.append('五')	#列表.append(值)	在列表尾追加一个元素
print(list)

追加一批元素

1
2
3
4
list1 = [1,2,3,4]
list2 = [5,6,7]
list1.extend(list2)	#列表.extend(数据容器)	在列表尾导入一批元素,此处括号内直接填写也可以
print(list1)

删除元素

方法一:del指定下标删除 注意:由于del是Python主环境中的一个关键字,所以到此只有它的语法是放在列表名前面的

1
2
3
list = [1,2,3]
del list[0]	#del 列表[下标]
print(list)

方法二:pop取出

1
2
3
4
list = [1,2,3]
a = list.pop(0)		#列表.pop(下标)
print(list)
print(a)			#获取被取出的元素

方法三:remove指定内容删除 注意:remove方法会从前往后依次检索列表中的元素,并删除第一个匹配的元素,如果想删除多个相同元素,请执行多次remove

1
2
3
list = ['一','二','删我','三','删我']
list.remove('删我')	#列表.remove(元素值)
print(list)

清空列表

1
2
3
list = [1,2,3]
list.clear()	#列表.clear()
print(list)

统计某元素在列表中的数量

1
2
list = [1,2,3,2,8,2,5,2]	
print(list.count(2))		#列表.count(元素值)

统计列表内全部元素数量

注意:它的语法也是放在列表名前面的

1
2
list = [1,2,3,2,8,2,5,2]	
print(len(list))		#len(列表)

列表的排序

sort()函数

默认升序(数字从小到大,首字母从前到后),且会修改当前列表

1
2
3
4
5
6
list1 = [10, 8, 3, 22, 33, 7, 11, 100, 54]
list2 = ['f','b','d','c','a','e']
list1.sort()
list2.sort()
print(list1)
print(list2)

可选参数:reverse 降序

1
2
3
list = [1,2,3,4,5]
list.sort(reverse=True)
print(list)

可选参数:key 自定义排序

1
2
3
list = ['java','python','C++','go']
list.sort(key=len)	#此处以长度为参考量,仅为其中一种用法
print(list)

你也可以将其组合

1
2
3
list = ['java','python','C++','go']
list.sort(key=len,reverse=True)	
print(list)

sorted()函数

用法与sort()一致,但是不会修改列表本身,而是将修改后的列表创建一个副本。简而言之,你需要一个变量来接收它。

1
2
3
list = ['java','python','C++','go']
a = sorted(list,key=len,reverse=True)
print(a)

我们来比较一下二者的区别

1
2
3
4
5
6
7
8
list1 = [5,4,3,2,1]
list2 = [5,4,3,2,1]
list3 = list1.sort()
list4 = sorted(list2)
print(list1)	#[1, 2, 3, 4, 5]	列表本身也被修改
print(list2)	#[5, 4, 3, 2, 1]	可见列表本身未被修改
print(list3)	#None	因为sort()函数不会传出修改后的列表
print(list4)	#[1, 2, 3, 4, 5]	

列表的循环遍历

while循环

示例:

1
2
3
4
5
6
list = [1,2,3,4,5]
index = 0
while index < len(list):
    a = list[index]
    print(a)	#对元素a进行处理
    index += 1

for循环

示例:

1
2
3
4
list = [1,2,3,4,5]
for i in range (0,len(list)):
    a = list[i]
    print(a)
Licensed under CC BY-NC-SA 4.0
已存在于互联网
发表了126篇文章 · 总计210.25k字
萌ICP备20267077号
Powered by ctOS