master
/ 5.1 序列通用操作.ipynb

5.1 序列通用操作.ipynb @masterview markup · raw · history · blame

Notebook

序列通用操作

文本序列(字符串)、列表、元组和 range 等序列数据类型具有一些共性。
他们内部元素之间都存在先后顺序,都支持序列的拼接、重复、索引、切片、测试长度、最大值、最小值和存在性测试等操作。
各操作的描述如表 6.1 所示,s 和 t 是具有相同类型的序列,n、i、j 和 k 是整数而 x 是任何满足 s 所规定的类型和值限制的任意对象。
in 和 not in 操作具有与比较操作相同的优先级。

  • (拼接) 和 * (重复) 操作具有与对应数值运算相同的优先级。
操作符 描述
s[i] 索引,返回序列 s 的第 i 项,项序号为整数
s[start:end[:step]] 切片,返回序列 s 从start到end (不包括end)的步长为step的字符生成新的序列,step缺省时,步长为1,返回序号从start到end的子序列。
s + t 拼接两个序列 s 和 t,仅适用于列表和字符串
s n 或n s n 为整数,将序列 s 与自身拼接 n 次生成新序列,range不支持此操作
len(s) 返回序列 s 的长度,序列包含元素的个数或字符串包含字符的个数
min(s,*[,key, default]) 返回序列 s的最小值,key关键字缺省时按元素值比较
max(s,*[,key, default]) 返回序列 s的最大值,key关键字缺省时按元素值比较
s.count(x) x 在 s 中出现的总次数
s.index(x[, i[, j]]) 元素或字符 x 在序列 s 中首次出现项的索引号,i值存在时表示从索引号 i 处开始查找 x,j 存在时表示查找范围在 i 和 j 之间。
x in s 如果基本序列 s 中的某项等于 x ,则结果为 True,否则结果 False
如果字符串 s 中的任一子序列与 x 相等,则结果为True,否则结果False
x not in s 如果基本序列 s 中的某项等于 x ,则结果为 False,否则结果 True
如果字符串 s 中的任一子序列与 x 相等,则结果为False,否则结果True

在序列中循环时,用 enumerate() 函数可以同时取出位置索引和对应的值:

In [1]:
for i, city in enumerate(['北京', '上海', '天津', '重庆']):
    print(i, city)  # 默认从0开始计数
0 北京
1 上海
2 天津
3 重庆
In [2]:
for i, city in enumerate(['北京', '上海', '天津', '重庆'], 1):
    print(i, city)  # 从1开始计数
1 北京
2 上海
3 天津
4 重庆
In [ ]: