操作列表
1. 遍历
magicians = ['alice', 'david', 'carolina']
# (1) 注意:末尾有冒号
# (2) 使用单数和复数式名称,可帮助你判断代码处理的是单个列表元素还是整个列表
# (3) for循环里定义的变量,出了循环也能用
for magician in magicians:
# 注意:前面要缩进
# Python根据缩进来判断代码行与前一个代码行的关系
# a. for后面每个缩进的代码行都是循环的一部分
# b. for后面没有缩进的代码都只执行一次
# b. 紧跟在for语句后面的代码行不缩进会报错
print(magician)
=>
alice
david
carolina
2. 数值列表
(1) range()
# 1) 生成一系列数字
# 注意:输出不含第二个参数:5
for value in range(1, 5):
print(value)
=>
1
2
3
4
# 2) 生成的不是list,可用list()将其结果转换为list
numbers = list(range(1, 6))
print(numbers) => [1, 2, 3, 4, 5]
# 3) 可指定步长
even_numbers = list(range(2, 11, 2))
print(even_numbers) => [2, 4, 6, 8, 10]
# 4) 应用:创建1~10的平方的列表
squares = []
for value in range(1, 11):
squares.append(value ** 2)
print(squares) => [1, 4, 9, 16, 25, 36, 47, 64, 81, 100]
(2) 统计计算
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
# 注意:没有avg(),已试
min(digits) => 0
max(digits) => 9
sum(digits) => 55
(3) 列表解析
将for循环和创建新元素的代码合并成一行,并自动附加新元素
# 注意:末尾无冒号
squares = [value ** 2 for value in range(1, 11)]
3. 切片
列表的部分元素
players = ['charles', 'martina', 'michael', 'florence', 'eli']
# 指定第一个和最后一个元素的索引,在到达第二个索引前的元素后停止
print(players[0:3]) => ['charles', 'martina', 'michael']
# 若未指定第一个索引,将从列表开头开始
print(players[:4]) => ['charles', 'martina', 'michael', 'florence']
# 省略终止索引,将终止于列表末尾
print(players[2:]) => ['michael', 'florence', 'eli']
print(players[-3:]) => ['michael', 'florence', 'eli']
遍历切片
for player in players[:3]:
print(player.titile())
=>
Charles
Martina
Florence
4. 复制列表
[:] 创建包含整个列表的切片
- 若只是简单地赋值,就不能得到两个列表,而是关联,即都指向同个列表
5. 元组
不可变的列表,对不应变化的值提供了一定程度的保护
# 用圆括号来标识,用索引访问其元素
dimensions = (200, 50)
print(dimensions[0]) => 200
print(dimensions[1]) => 50
# 修改元素会返回类型错误消息
dimensions[0] = 250
=>
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
# 用for循环遍历
for dimension in dimensions:
print(dimension)
=>
200
50
# 虽不能修改元组元素,但可以给存储元组的变量赋值,即重新定义
dimensions = (400, 100)
for dimension in dimensions:
print(dimension)
=>
400
100
6. 代码格式
1. 缩进
- 建议每级缩进4个空格
- 可设置编辑器,使其在文档中使用制表符键时插入空格而不是制表符
2. 空行
- 要将程序的不同部分分开,可使用空行
- 空行不影响代码的运行,但会影响代码可读性
- Python解释器根据水平缩进情况来解读代码,但不关心垂直间距