4.操作列表
4.1遍历列表(for循环)
4.1.1循环基本使用
for循环:用以遍历列表所有元素,对每个元素都执行相同的操作。示例如下:
modes=['car','bicycle','subway','bus','train']
for mode in modes:
print(mode)
输出结果为:
car
bicycle
subway
bus
train
也可以在for语句中包含更为复杂的操作。示例如下:
modes=['car','bicycle','subway','bus','train']
for mode in modes:
print(f'I like go to work by {mode}.')
输出结果为:
I like go to work by car.
I like go to work by bicycle.
I like go to work by subway.
I like go to work by bus.
I like go to work by train.
4.1.2 for语句注意事项
1.忘记缩进:对于位于for语句后面且属于循环组成部分的代码行,一定要缩进;
2.忘记冒号:for语句末尾必须添加冒号。
4.2创建数值列表
4.2.1函数range()
使用方法:range(min,max,space) 其中range从第min个数开始(包含该数),到max停止(不包含max),space表示间隔几个数,为空时表示默认为间隔1个数。示例如下:
for i in range(1,5):
print(i)
输出结果为:
1
2
3
4
- 使用range()创建数字列表:可直接用list() 将range()结果直接转换为列表。示例如下:
numbers=list(range(1,6))
print(numbers)
输出结果为:
[1, 2, 3, 4, 5]
可添加for语句创建任何需要的数集。例如创建一个包含前10个整数的平方的列表。示例如下:
squares=[]
for i in range(1,11):
squares.append(i**2)
print(squares)
输出结果如下:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
对于以上语法也可以使用列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。示例如下:
squares=[i**2 for i in range(1,11)]
print(squares)
输出结果为:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
- 对数字列表进行简单的运算:min()、max()、sum() 示例如下:
digits=[1,2,3,4,5,6,7,8,9,0]
min(digits)
max(digits)
sum(digits)
输出结果为:
0
9
45
4.3列表切片
4.3.1切片
- 创建切片:指定要使用的第一个元素和最后一个元素的索引,同样在到达第二个索引之前的元素后停止。list[min,max] ,其中min可以省略,为空时默认为从列表头开始;max也可以省略,为空时默认到列表尾结束。也可以在切片的方括号内指定第三个值,表示为在指定范围内每隔多少元素提取一个。示例如下:
modes=['car','bicycle','subway','bus','train']
print(modes[0:3])
输出结果为:
['car', 'bicycle', 'subway']
- 遍历切片:需要遍历列表中的部分元素,可以在for循环语句中使用切片。示例如下:
modes=['car','bicycle','subway','bus','train']
print('Here are the modes I usually take:')
for mode in modes[:3]:
print(mode)
输出结果为:
Here are the modes I usually take:
car
bicycle
subway
4.3.2复制列表
复制方法:创建一个包含整个列表的切片,同时省略起始索引和终止索引([:])。示例如下:
modes=['car','bicycle','subway','bus','train']
modes1=modes[:]
print(modes1)
输出结果为:
['car', 'bicycle', 'subway', 'bus', 'train']
4.4元组
不能修改的值称为不可变的,而不可变的列表被称为元组。元组使用逗号来标识,同时使用圆括号使其看起来更整洁与清晰。示例如下:
#定义有两个元素的元组
t=(20,30)
print(t[0])
#定义有一个元素的元组
t1=(40,)
print(t1[0])
输出结果如下:
20
40
元组的元素是不可变的,当我们尝试修改元组中的元素时,python会报错。示例如下:
t=(20,30)
t[0]=10
输出结果如下:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
- 修改元组变量:虽然无法修改元组的元素,但可以给存储元组的变量赋值。示例如下:
t=(20,30)
t=(10,30)
print(t)
输出结果为:
(10,30)