python 工具

Python 列表(List)

  • 列表是可以包含任何种类对象的有序集合,通过中括号 [ ] 定义
  • 语法:变量名 = 列表常量/列表类型变量
list1 = [1, 2, 3, 'hellow', 'world', [4, 5, 6]]
list2 = list1

# 创建空列表
list3 = []
list3 = list()

1. 访问列表元素

[1] 偏移量

list1 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
  • 正偏移从字符串开始处计数,从 0 开始
  • 负偏移从字符串结尾处反向计数,从 -1 开始
  • 正偏移 = 负偏移 + 字符串长度
正偏移→ 0 1 2 3 4 5
列表 'red' 'green' 'blue' 'yellow' 'white' 'black'
负偏移← -6 -5 -4 -3 -2 -1

[2] 索引

# 索引用于获取特定偏移的元素
# 语法:列表[偏移量]
list2 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list2[1]	# 'green'
list2[-3]	# 'yellow'

# 偏移量不能超出列表的范围,-len(list) <= 偏移量 <= len(list) - 1
len(list2)	#6
list2[6]	#报错
list[-7]	#报错

[3] 分片

# 分片用于提取子列表
# 语法:列表[头下标:尾下标]	截取范围为[头下标,尾下标-1),包含头下标不包含尾下标
# 头下标省略默认值为0,尾下标省略默认值为列表长度
list2 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list2[0:3]	# ['red', 'green', 'blue']
list2[-4:]	# ['blue', 'yellow', 'white', 'black']
list2[:-2]	# ['red', 'green', 'blue', 'yellow', 'white']

# 第三个索引:步进(可选)
# 语法:列表[头下标:尾下标:步进数]	每隔'步进数'个元素索引一次,默认值为1
list2 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
list2[::2]	# ['red', 'blue', 'white']
# 步进数可以为负数,分片将会从右至左进行
# 且两个边界的意义实际上进行了反转,截取范围变成了[头下标, 尾下标+1)
list2[::-1]		# ['black', 'white', 'yellow', 'blue', 'green', 'red']
list2[4:0:-1]	# ['white', 'yellow', 'blue', 'green']

2. 修改列表元素

list3 = ['aa', 'bb']

# 使用索引
list3[1] = 'cc'	# ['aa', 'cc']

# 使用方法
# append(obj)在列表末尾添加一项元素
list3.append('dd') # ['aa', 'cc', 'dd']
list3.append(['hello', 'world'])	#  ['aa', 'cc', 'dd', ['hello', 'world']]
# extend(obj)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list3.extend(['ee', 'ff'])	# ['aa', 'cc', 'dd', ['hello', 'world'], 'ee', 'ff']
# insert(index, obj) 在第index项前插入元素
list3.insert(3, 'gg') # ['aa', 'cc', 'dd', 'gg', ['hello', 'world'], 'ee', 'ff']

3. 删除列表元素

list4 = ['aa', 'bb', 'cc', 'dd']

# 使用索引
del list4[2] # ['aa', 'bb', 'dd']
del list4	# 删除列表,之后调用list4会报错

# 使用方法
# pop(index=-1) 移除第index项元素(默认最后一个元素),并且返回该元素的值
list4.pop() # ['aa', 'bb']
# remove(obj) 移除列表中某个值的第一个匹配项
list4.append('aa') # ['aa', 'bb', 'aa']
list4.remove('aa') # ['bb', 'aa']
# clear() 清空列表
list4.clear()	# []

4. 列表常用函数

序号 函数 描述
1 max(list) 返回列表元素最大值
2 min(list) 返回列表元素最小值
3 list.append(obj) 在列表末尾添加新的元素obj
4 list.count(obj) 统计元素obj在列表中出现的次数
5 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
6 list.index(obj) 从列表中找出元素obj第一个匹配项的索引位置
7 list.insert(index, obj) 将对象obj插入列表中第index项后面
8 list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
9 list.remove(obj) 移除列表中元素obj的第一个匹配项
10 list.reverse() 反向列表中元素
11 list.sort( key=None, reverse=False) 对原列表进行排序
12 list.clear() 清空列表
13 list.copy() 复制列表
14 value in list 如果value在列表里返回True,否则返回False