Python 序列(list,tuple,range)
list
class list([iterable])
构造方法
- 使用一对方括号表示空列表:[]
- 使用方括号,用逗号分隔项目[a], [a, b, c]
- 使用列表推导式: [x for x in iterable]
- 使用类型构造函数:list()或list(iterable)
对象方法
tuple
构造方法
class tuple([iterable])
- 使用一对括号表示空元组:()
- 对单个元组使用尾随逗号:a,或(a,)
- 以逗号分隔项目:a, b, c or (a, b, c)
- 使用tuple()内建:tuple()或tuple(iterable)
对象方法
range
class range(start, stop[, step])
序列通用操作
操作 | 结果 |
---|---|
x in s | True如果s的项目等于x,则False |
x not in s | False如果s的项目等于x,否则True |
s + t | s和t的并置 |
s * n or n * s | 相当于将s添加到自身n次 |
s[i] | i项目s,来源0 |
s[i:j] | 从i到j的s |
s[i:j:k] | slice of s from i to j with step k |
len(s) | 长度s |
min(s) | s的最小项 |
max(s) | s的最大项目 |
s.index(x [, i [, j]]) | 在s中(在索引i之后或索引j之前)的x |
s.count(x) | s中x的总出现次数 |
解包方式
>>> t = (1, 2, 3, 4)
>>> first, *middle, last = t
>>> middle
[2, 3]
>>> _, *rest = t
>>> rest
[2, 3, 4]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
可变序列操作
操作 | 结果 |
---|---|
s [i] = x | x替换s的项目i |
s [i:j] = t | 从可迭代的t的内容替换从i到j的s |
del s [i:j] | 与s [i:j] = [] |
s [i:j:k] = t | s[i:j:k]的元素被t取代 |
del s [i:j:k] | 从列表中删除s[i:j:k]的元素 |
s.append(x) | 将x追加到序列的末尾(与s [len(s):len(s)] = [x]) |
s.clear() | 从s中删除所有项目(与del s [:]相同) |
s.copy() | 创建s的浅拷贝(与s[:]相同) |
s.extend(t)或s + = t | 使用t的内容延伸s(大部分与s [len(s):len(s)] t3 > = t) |
s * = n | 更新s,其内容重复n次 |
s.insert(i, x) | 在由i给出的索引处插入x到s(与s [i:i] = [x]) |
s.pop([i]) | 在i检索项目,并从s中删除它 |
s.remove(x) | 从s中移除第一个项目s [i] == x |
s.reverse() | 反转s的项目 |
切片
list[start:stop:step]
s = slice(start,stop,step)
list[s]
列表推导式
[i for i in iterable if condition]
- 1
索引迭代
enumerate()可以把一个list变成索引-元素对。
for i, value in enumerate(['A', 'B', 'C']):print(i, value)
- 1
zip
zip()可以将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,并返回一个迭代器,常用于同时遍历两个可迭代对象。
>>> li1 = ['Python' ,'JavaScript', 'Java']
>>> li2 = [1, 2, 3]
>>> nl = zip(li1, li2)
[('Python', 1), ('JavaScript', 2), ('Java', 3)]
- 1
- 2
- 3
- 4
配合dict可以生成字典
>>> l1 = ['A', 'B', 'C']
>>> l2 = [1, 2, 3]
>>> dict(zip(l1, l2))
{'A': 1, 'B': 2, 'C': 3}
- 1
- 2
- 3
- 4
列表合并
除了用extend方法还可以用
>>> l1 = [1, 2]
>>> l2 = [3, 4]
>>> l3 = [*l1, *l2]
>>> l4 = sum([l1, l2],[]) # 利用了sum的特性
>>> l5 = li+li # 字典+法的重载
- 1
- 2
- 3
- 4
- 5
列表值的判定
a=[1,2]
a==1,2 # 返回一个元组,元组的第二个值是第二个值,这个在numpy中可以应用
>>> (False, 2)
- 1
- 2
- 3
多层列表嵌套
https://blog.csdn.net/XX_123_1_RJ/article/details/80591107
常见序列
名称 | 类型 |
---|---|
tuple | 不可变 |
list | 可变 |
range | 不可变 |
str | 不可变 |
Bytes | 不可变 |
注意range/str/Bytes都是序列类型的