序列类型-list,tuple,range¶
通用操作¶
运算 | 结果 |
---|---|
x in s |
如果 s 中的某项等于 x 则结果为 True ,否则为 False |
x not in s |
如果 s 中的某项等于 x 则结果为 False ,否则为 True |
s + t |
s 与 t 相拼接 |
s * n 或 n * s |
相当于 s 与自身进行 n 次拼接 |
s[i] |
s 的第 i 项,起始为 0 |
s[i:j] |
s 从 i 到 j 的切片 |
s[i:j:k] |
s 从 i 到 j 步长为 k 的切片 |
len(s) |
s 的长度 |
min(s) |
s 的最小项 |
max(s) |
s 的最大项 |
s.index(x[, i[, j]]) |
x 在 s 中首次出现项的索引号(索引号在 i 或其后且在 j 之前) |
s.count(x) |
x 在 s 中出现的总次数 |
list¶
list.append(x)
# 在列表末尾添加一个元素,相当于 a[len(a):] = [x] 。
a = [1, 2, 3, 4, 5]
a.append('a')
a.append(3)
a.append([1, 2, 3])
a.append({1, 2, 3})
a.append((1, 2, 3))
a.append({'b': 1})
print(a)
[1, 2, 3, 4, 5, 'a', 3, [1, 2, 3], {1, 2, 3}, (1, 2, 3), {'b': 1}]
a[len(a):] = [10]
list.extend(iterable)
# 用可迭代对象的元素扩展列表。相当于 a[len(a):] = iterable 。
a = [1, 2, 3, 4, 5]
a.extend('a')
a.extend([1, 2, 3])
a.extend({1, 2, 3})
a.extend((1, 2, 3))
a.extend({'b': 1})
print(a)
[1, 2, 3, 4, 5, 'a', 1, 2, 3, 1, 2, 3, 1, 2, 3, 'b']
a[len(a):] = range(3)
list.insert(i, x)
#在指定位置插入元素。第一个参数是插入元素的索引,因此,a.insert(0, x) 在列表开头插入元素, a.insert(len(a), x) 等同于 a.append(x) 。
a = [1, 2, 3, 4, 5]
a.insert(0, 'a')
a.insert(0, [1, 2, 3])
a.insert(0, {1, 2, 3})
a.insert(0, (1, 2, 3))
a.insert(0, {'b': 1})
a.insert(0, 1)
print(a)
[1, {'b': 1}, (1, 2, 3), {1, 2, 3}, [1, 2, 3], 'a', 1, 2, 3, 4, 5]
list.remove(x)
# 从列表中删除第一个值为 x 的元素。未找到指定元素时,触发 ValueError 异常。
a = [1, 2, 3, 4, 5]
a.remove(1)
print(a)
[2, 3, 4, 5]
list.pop([i])
# 删除列表中指定位置的元素,并返回被删除的元素。未指定位置时,a.pop() 删除并返回列表的最后一个元素。(方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。这种表示法常见于 Python 参考库)。
a = [1, 2, 3, 4, 5]
p = a.pop() # 默认删除最后一个
print(p)
print(a)
5
[1, 2, 3, 4]
p = a.pop(2) # 可以给出下标
print(p)
print(a)
3
[1, 2, 4, 5]
list.clear()
# 删除列表里的所有元素,相当于 del a[:] 。
a = [1, 2, 3, 4, 5]
a.clear()
print(a)
[]
del a[:]
print(a)
[]
list.index(x[, start[, end]])
# 返回列表中第一个值为 x 的元素的零基索引。未找到指定元素时,触发 ValueError 异常。
# 可选参数 start 和 end 是切片符号,用于将搜索限制为列表的特定子序列。返回的索引是相对于整个序列的开始计算的,而不是 start 参数。
a = [1, 1, 1, 2, 3, 4, 1]
print(a.index(1))
print(a.index(1, 2, 10))
0
2
list.count(x)
# 返回列表中元素 x 出现的次数。
a = [1, 1, 1, 2, 3, 4, 1]
print(a.count(1))
print(a.count(2))
4
1
list.sort(*, key=None, reverse=False)
# 就地排序列表中的元素(要了解自定义排序参数,详见 sorted())。
a = [1, 1, 1, 2, 3, 4, 1]
a.sort()
print(a)
[1, 1, 1, 1, 2, 3, 4]
a.sort(reverse=True)
print(a)
[4, 3, 2, 1, 1, 1, 1]
list.reverse()
# 翻转列表中的元素。
a = [1, 2, 3, 'a', 'b', 'c']
a.reverse()
print(a)
['c', 'b', 'a', 3, 2, 1]
list.copy()
# 返回列表的浅拷贝。相当于a[:]。
a = [1, 2, 3, 'a', 'b', 'c']
print(id(a))
a1 = a.copy()
print(a1)
print(id(a1))
1576055219456 # 浅拷贝不指向同一内存地址
[1, 2, 3, 'a', 'b', 'c']
1576055172480 # 浅拷贝不指向同一内存地址
tuple¶
['count', 'index']
t = 1, 2, 3, 1, 1
print(type(t))
print(t.count(1))
print(t.index(2))
range¶
内置函数 range() 用于生成等差数列
等差数列是一种常见的数列形式,它的特点是任意两个相邻项的差都相等。
for i in range(5):
print(i)
0
1
2
3
4
range(5, 10)
5, 6, 7, 8, 9
range(0, 10, 3)
0, 3, 6, 9
range(-10, -100, -30)
-10, -40, -70
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
print(i, a[i])
0 Mary
1 had
2 a
3 little
4 lamb
enumerate()
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
sum(range(101))
5050
list(range(5))
[0, 1, 2, 3, 4]