for 循环
摘要
for
语句用于对序列(例如字符串、元组或列表)或其他**可迭代对象**中的元素进行迭代。
遍历操作的容易实现,使得 for
循环是最常使用的循环语句。
一次迭代可以执行一次循环体。可以通过 continue
语句跳过,也可以跳过 break
语句跳出。
for 语句语法
for 项 in 项集:
循环体
[else:
结束片段] # [] 表示可选
项集
是一个能够生成迭代器的数据对象,如列表、元组、字符串、字典等等;for
循环先要针对项集
生成一个迭代器,每次进入循环体前,进行一次迭代;- 由上一点可知,循环体中对于
项
的修改不会影响迭代; break
终止的循环不会执行else
正常结束片段。
可迭代对象
可迭代对象:能够逐一返回其成员项的对象。
iter(可迭代对象)
返回该对象的迭代器。
可迭代对象包括:
- 所有序列类型,如列表、字符串、元组、range
- 某些非序列类型,如字典、文件对象
- 定义了
__iter__()
方法的类的对象 - 实现了 sequence语义 的
__getitem__()
方法的类的对象
for 表达式
列表表达式
a_list = [ f(item) for item in items ]
集合表达式
a_set = { f(item) for item in items }
字典表达式
a_dict = { k(item): v(item) for item in items }
生成器
a_generator = ( f(item) for item in items )
案例
对可迭代对象进行遍历
九九乘法表:
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}x{i}={j*i}", end=";")
print()
# result bellow
1x1=1;
1x2=2;2x2=4;
1x3=3;2x3=6;3x3=9;
1x4=4;2x4=8;3x4=12;4x4=16;
1x5=5;2x5=10;3x5=15;4x5=20;5x5=25;
1x6=6;2x6=12;3x6=18;4x6=24;5x6=30;6x6=36;
1x7=7;2x7=14;3x7=21;4x7=28;5x7=35;6x7=42;7x7=49;
1x8=8;2x8=16;3x8=24;4x8=32;5x8=40;6x8=48;7x8=56;8x8=64;
1x9=9;2x9=18;3x9=27;4x9=36;5x9=45;6x9=54;7x9=63;8x9=72;9x9=81;
字典表达式的应用
十天干的码值:
tg10 = "甲乙丙丁戊己庚辛壬癸"
idx = [tg for tg in tg10]
unicoded_tg10 = {tg: ord(tg) for tg in tg10}
unicoded_tg10
# result bellow
{'甲': 30002,
'乙': 20057,
'丙': 19993,
'丁': 19969,
'戊': 25098,
'己': 24049,
'庚': 24218,
'辛': 36763,
'壬': 22764,
'癸': 30328}