Skip to main content
 首页 » 编程设计

python之遍历列表直到找到值然后中断

2025年05月04日12dudu

我有一个列表:[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))