首页 > 编程笔记 > Python笔记 阅读:13

Python序列的用法(非常详细,附带实例)

Python 中的序列是指一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号访问它们,这些编号称作索引。

例如,酒店有很多房间,这些房间可以看作是一个序列,房间是内存空间。每个房间都有一个属于自己的编号,这个编号就是索引。起始房间的索引是 0,索引从 0 开始递增,如下图所示。


图 1 索引

Python 除了支持 0 和正整数的索引,也支持负数索引,如下图所示。


图 2 负索引

下面介绍在 Python 中如何运用索引:
room = "这是一个五星级酒店"
print(room[0], room[1], room[2], room[3])
print(room[4], room[5], room[6], room[7])
print(room[8])
运行结果为:

这 是 一 个
五 星 级 酒

我们使用 room[0] 代表字符串“这”,使用 room[1] 代表字符串“是”,以此类推。

下面使用负数索引:
room = "这是一个五星级酒店"
print(room[-1], room[-2], room[-3], room[-4])
print(room[-5], room[-6], room[-7], room[-8])
print(room[-9])
运行结果为:

店 酒 级 星
五 个 一 是

Python序列切片

在 Python 中,序列切片的语法为:
sname[start:end:step]
上述语法中参数的含义如下:
下面进行序列切片:
room = "这是一个五星级酒店"
print(room[0:9:1])
print(room[4:9:1])
print(room[0:5:1])
print(room[0:9:3])
运行结果为:

这是一个五星级酒店
五星级酒店
这是一个五
这个级

结果显示:

Python序列相加

Python使用“+”运算符将两个序列进行拼接。

定义 room1 为“这是一个”,room2 为“五星级酒店”,下面将两个序列进行拼接。
room1 = " 这是一个 "
room2 = " 五星级酒店 "
print(room1 + room2)
运行结果为:

这是一个五星级酒店

结果显示,room1 和 room2 两个序列拼接成“这是一个五星级酒店”。

下面验证是否可以使用序列相加进行数学运算:
room1 = "520"
room2 = "1314"
print(room1 + room2)
运行结果为:

5201314

结果显示,room1 和 room2 两个序列进行了拼接操作,而非数学运算。

Python序列相乘

在 Python 中,序列乘以一个数字 n,可将该序列拼接 n 次。例如:
room1 = " 语数英 "
room2 = "123"
print(room1 * 3)
print(room2 * 4)
运行结果为:

语数英语数英语数英
123123123123

Python序列检索成员

在 Python 中,可以使用关键字 in 检索某元素是否为序列的成员,语法为:
value in sequence
其中,value 表示要检索的元素,sequence 表示指定的序列。若value不止一个,只有所有 value 都是序列的成员时,才会返回 True,否则返回 False。

例如:
room = "语数英的考试成绩合格"
print('语' '数' in room)
print('语' '历' in room)
print('历' '好' in room)
运行结果为:

True
False
False

第一个 print 语句的输出结果为 True,因为“语”和“数”均为序列成员;第二个 print 语句的输出结果为 False,因为“语”是序列成员,而“历”不是序列成员;同理,第三个 print 语句的输出为 False,因为“历”和“好”都不是序列成员。

Python序列排序

序列排序是指对序列中的元素进行排序。例如:
a = "456123987"
print(sorted(a))
运行结果为:

['1', '2', '3', '4', '5', '6', '7', '8', '9']

此时将序列 a 中的数字按从小到大重新排序。

再例如:
a = "zeftdcab"
print(sorted(a))
运行结果为:

['a', 'b', 'c', 'd', 'e', 'f', 't', 'z']

相关文章