四、操作列表
4.1 遍历整个列表
- 遍历
1
2
3
4mangicians = ['alice', 'david', 'carolina']
for mangician in mangicians:
print(mangician)
4.2 避免缩进错误
Python
根据缩进来判断代码行与前一个代码行的关系
- 缩进
- 忘记缩进
- 报错
- 逻辑错误
- 不必要的缩进
- 报错
- 循环后不必要的缩进
- 逻辑错误
- 遗漏了冒号
- 语法错误
for
语句末尾的冒号告诉Python
下一行是循环的第一行
- 忘记缩进
4.3 创建数值列表
使用函数
range()
- 从指定的第一个值开始,到指定的第二个值结束,不包含第二个值
1
2for value in range(1, 5):
print(value)
- 从指定的第一个值开始,到指定的第二个值结束,不包含第二个值
使用
range()
创建数字列表——使用list()
转换为列表使用
list()
转换为列表1
2numbers = list(range(1, 5))
print(numbers)输出:
[1, 2, 3, 4]
指定步长
- 打印1~10内的偶数:
1
2numbers = list(range(2, 11, 2))
print(numbers)
- 打印1~10内的偶数:
练习
打印1~10内的平方
1
2
3
4
5squares = []
for value in range(1, 11):
square = value ** 2
squares.append(square)
print(squares)优化
- 使用临时变量会让代码更易读,而在其他情况下,只会让代码无谓地变长;
- 首先考虑编写清晰易懂且能完成所需功能的代码;
- 审核时,再考虑更高效的方法。
1
2
3
4squares = []
for value in range(1, 11):
squares.append(value ** 2)
print(squares)
统计计算
- 最大值
max()
、最小值min()
、总和sum()
1
2
3
4digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(max(digits))
print(min(digits))
print(sum(digits))
- 最大值
列表解析
- 解析列表将
for
循环和创建新元素的代码合并成一行,并自动附加新元素1
2
3
4
5"""
列表解析
"""
squares = [value ** 2 for value in range(1, 11)]
print(squares)
- 解析列表将
4.4 使用列表的一部分
切片
处理列表的部分元素
1
2
3
4
5
6"""
打印从第1个开始,到第4个为止,不包括第4个(下标从0开始)
"""
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])如果没有指定第一个索引,将从列表开头开始
1
2
3
4
5players = ['charles', 'martina', 'michael', 'florence', 'eli']
"""
打印从列表开头开始,到第5个为止,不包括第5个(下标从0开始)
"""
print(players[:4])如果省略终止索引,将终止于列表末尾
1
2
3
4
5players = ['charles', 'martina', 'michael', 'florence', 'eli']
"""
打印从第2个开始,到列表末尾为止
"""
print(players[1:])负数索引返回离列末尾相应距离的元素
1
2
3
4
5players = ['charles', 'martina', 'michael', 'florence', 'eli']
"""
打印从最后3个开始,到列表末尾为止
"""
print(players[-3:])
遍历切片
1
2
3
4players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
print(player.title())复制列表
- 复制列表,可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引(
[:]
)
- 复制列表,可以创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引(
理解两个例子的差异
1 | my_foods = ['pizza', 'falafel', 'carrot cake'] |
输出:
1 | my_foods = ['pizza', 'falafel', 'carrot cake'] |
输出:
4.5 元组
一系列不可修改的元素,不可变的列表被称为元组
定义和遍历
- 尝试修改元组会报错
1
2
3
4
5dimensions = (200, 50)
print(dimensions)
for dimension in dimensions:
print(dimension)
- 尝试修改元组会报错
修改元组变量
- 虽然不能修改元组的元素,但可以给存储元组的变量赋值(重新定义元组)
1
2
3
4
5dimensions = (200, 50)
dimensions = (400, 100)
for dimension in dimensions:
print(dimension)
- 虽然不能修改元组的元素,但可以给存储元组的变量赋值(重新定义元组)
如果需要存储一组值在程序的整个生命周期内都不变,可以使用元组。