Python list及切片操作 详解


创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
list((3, 5, 7, 8, 9))

list(range(1, 10, 2))

list('hello world')
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

list({3, 5, 7})

# 把key转化为列表
list({'a':3, 'b':9, 'c':78})
['a', 'b', 'c']

# 将'key:value'转化成列表
list({'a':3, 'b':9, 'c':78}.items())
[('a', 3), ('b', 9), ('c', 78)]

# 空列表
x = list()

del x # 删除

访问

支持双向访问

1
2
3
4
5
x = list('pyhton')
x[0]
'p'
x[-1] # 最后一个
'n'

插入

1
2
3
a.append(4) # 尾部插入
a.insert(index, value) # 指定位置插入
a.insert([5, 6, 7]) # 尾部插入多个元素

删除

1
2
3
x.pop(index) # 弹出并返回index处元素,默认为尾部
x.remove(value) # 删除首个值为value的元素
del x[index] # 删除index处的元素

其它

  • clear() : 清空列表内所有对象
  • count(value) : 返回value的出现次数
  • index(value) : value第一次出现的位置
  • reverse() : 反转
  • sort() : 排序

运算符

+, +=

1
2
x = x + [4] # 新列表,涉及大量复制,比较慢
x += [4] # 在原序列上进行操作

*

1
2
x = x * 2 # 新列表,是原列表再复制一遍到尾部
x *= 2 # 原地址操作

关系运算符

1
2
[1, 2, 4] > [1, 2, 3, 5] # 逐位比较
True

切片

1
[start = 0:end = length:step = 1]

step为负数时,表示反向切片

插入

1
2
3
aList[len(List):] = [98] # 尾部增加元素
aList[:0] = [1,2] # 头部增加元素
aList[4:4] = [5] # 中间插入元素

修改

1
2
3
aList[:3] = [1, 2, 3] # 从0开始替换三个(需要保持长度一致)
aList[3:] = [4, 5, 6] # 此时可以随便增加元素
aList[::2] = ['a', 'b', 'c'] # 隔一个修改一个

删除

1
2
3
aList[:3] = [] # 删除前三个
aList[3:6] = [] # 删除3~6的元素
del aList[:3] # 也可配合del

Author: BY 水蓝
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source BY 水蓝 !
  TOC