我有一个列表:[1,2,3,4,5,6,0,9,2] 我想遍历它。
我想为每 3 个元素创建另一个字典列表,直到到达 0 元素(即第一个字典将是 {'gold':1,'silver':2 ,'bronze':3} 和类似的 4,5,6)。循环将终止,因为它到达 0。
因此结果列表将是:[{'gold':1,'silver':2,'bronze':3},{'gold':4,'silver':5,'bronze' :6}]
我是 Python 的新手并且有 PHP 背景,我将如何解决这个利用 zip 或 map 等函数的问题,或者我是否必须求助于普通的 while 循环?
请您参考如下方法:
from itertools import cycle
placings = cycle(['gold', 'silver', 'bronze'])
numbers = [1,2,3,4,5,6,0,9,2]
def zipper(numbers, placings):
d = {}
for n, c in zip(numbers, placings):
if n == 0:
break
d[n] = c
if n % 3 == 0:
yield d
d = {}
print list(zipper(numbers, placings))
