同時迭代多個對象分為兩種情況
- 并行迭代
情景假設:某個班級的數學成績,英語成績,語文成績分別存在一個列表中,求每個學生的總分
對于并行迭代可以使用zip函數
# 并行
chinese = [randint(60, 100) for _ in range(40)]
math = [randint(60, 100) for _ in range(40)]
english = [randint(60, 100) for _ in range(40)]
total = []
for x, y, z in zip(chinese, math, english):
total.append(x + y + z)
- 串行迭代
情景假設:若干個班級的數學成績存在多個列表中,求分數高于80分的人
對于串行迭代可以使用itertools.chain函數
# 串行
class1 = [randint(60, 100) for _ in range(40)]
class2 = [randint(60, 100) for _ in range(40)]
class3 = [randint(60, 100) for _ in range(40)]
l = filter(lambda x: x >= 80, chain(class1, class2, class3))