遍历整个列表
for <variable> in <sequence>:
<statements>
- 不要遗漏冒号
- 循环体中不要忘记缩进
具体示例:
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
执行结果:
alice
david
carolina
创建数字列表
使用函数range()
for value in range(1, 5):
print(value)
结果:
1
2
3
4
根据打印结果, 可以看出函数range(1, 5)的含义是左闭右开, 也就是 1 <= value < 5
, value 为整数.
使用range()创建数字列表
list()函数可以将range()生成的一些列数字转成列表
numbers = list(range(1, 6))
print(numbers)
结果:
[1, 2, 3, 4, 5]
rang()函数可以指定步长
even_numbers = list(range(2, 11, 2))
print(even_numbers)
[2, 4, 6, 8, 10]
使用函数range()几乎可以创建任意需要的数字集
squares = []
for value in range(1, 11):
square = value**2
squares.append(square)
print(squares)
生成的结果集:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
对数字列表执行简单的统计计算
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(min(digits))
print(max(digits))
print(sum(digits))
0
9
45
列表解析
可以看到前面的生成squares列表需要好几行代码, 使用列表解析一行代码就能搞定.
语法: <list_name> = [<statements> for <variable> in <sequence>]
squares = [value**2 for value in range(1, 11)]
print(squares)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
使用列表的一部分
切片
# 使用列表的一部分- 切片
players = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(players[0:3])
print(players[1:4])
print(players[:4]) # 不指定, 从列头开始
print(players[2:]) # 不指定, 到列尾
print(players[-3:]) # 返回最后3个
结果:
['a', 'b', 'c']
['b', 'c', 'd']
['a', 'b', 'c', 'd']
['c', 'd', 'e', 'f', 'g']
['e', 'f', 'g']
遍历切片
# 遍历切片
for player in players[:3]:
print(player)
a
b
c
复制列表
要想复制列表, 可创建一个包含整个列表的切片, 使用[:]
同时省略起始索引和终止索引.
# 复制列表
my_foofs = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foofs[:]
my_foofs.append('cannoli')
friend_foods.append('ice cream')
print("我喜欢的食物是: ")
print(my_foofs)
print('\n我朋友喜欢的食物是: ')
print(friend_foods)
测试结果:
我喜欢的食物是:
['pizza', 'falafel', 'carrot cake', 'cannoli']
我朋友喜欢的食物是:
['pizza', 'falafel', 'carrot cake', 'ice cream']
上面是使用切片来复制的列表, 如果不使用切片呢? 直接friend_foods = my_foofs 这样是不行的, 这种做法是将my_foofs 赋值给了friend_foods, 这两个指向的是同一个列表
元祖
元祖, 不可变的数据集.
定义元祖
# 元祖 不可变
dimensions = (200, 500)
print(dimensions)
print(dimensions[0])
print(dimensions[1])
# dimensions[0] = 300 # 不能修改, 会报错
(200, 500)
200
500
元祖不能修改, 会报错
Traceback (most recent call last):
File "/Users/wushanghui/Documents/code/codechina/python3-learn/base/for.py", line 62, in <module>
dimensions[0] = 300 # 不能修改, 会报错
TypeError: 'tuple' object does not support item assignment
遍历元祖中的所有值
# 遍历元祖
for dimension in dimens
print(dimension)
200
500
修改元祖变量
虽然元祖不能修改, 但是可以给存储元祖的变量赋值一个新的元祖
print('original: ')
for dimension in dimensions:
print(dimension)
print('modified: ')
dimensions = (100, 200)
for dimension in dimensions:
print(dimension)
original:
200
500
modified:
100
200
设置代码格式
- 缩进: 建议每级缩进使用4个空格
- 行长: 建议每行不超过80个字符
- 空行: 建议不同部分使用一个空行隔开
- 其他格式: 关注PEP 8
Python3 目录
评论