继续学习序列,除了列表,还有一些其他形式的序列和构造序列的方法。
range()函数
range()函数用于构造自然数序列,()里面只填写数字n就会从0开始数n个连续自然数完整结构是range(起始数字,终止数字,步长),注意步长可以为负,而且三者用逗号隔开。注意,序列本身无法打印,需要改成某种特定序列才行,如用list()函数改成列表。
print(list(range(1,11,3)))
[1, 4, 7, 10]
所以range()最大的用处是和for循环搭配,比while循环效率高很多。
for i in range(11):
print(i)
0
1
2
3
4
5
6
7
8
9
10
元组
元组(tuple)属于不可变序列,因此不能进行重新赋值之类的操作,但是和列表操作很像。当存储一组数据并且不想改变这组数据的时候,可以创建元组。元组不同于列表,是用()进行储存的。
tuple1 = (1, 3, 2, 4)
print(tuple1)
(1, 3, 2, 4)
元组可以解构(解包),也就是把元组的值分别赋值给每个变量。
tuple1 = (11, 32, 25, 49)
(a, b, c, d) = tuple1
print(a, b, c, d)
11 32 25 49
可以用这种特性交换变量的值。
a = 233
b = 322
a, b = (b, a)
print(a, b)
322 233
本来解构需要保证变量数和元组元素数相等,但是星号可以不用这么遵守。但是注意星号只能有一个。列表也能解构。
tuple1 = (11, 32, 25, 49)
(a, b, *c) = tuple1
print(a, b, c)
(*a, b, c) = tuple1
print(a, b, c)
(a, *b, c) = tuple1
print(a, b, c)
11 32 [25, 49]
[11, 32] 25 49
11 [32, 25] 49