Skip to main content
 首页 » 编程设计

python之将两个不同大小的列表组合成一个组合集

2025年05月04日11powertoolsteam

我正在尝试将 2 个具有不同数据和大小的列表合并为 1 个,并让较小的列表“环绕”。我正在寻找一种干净的方法来做到这一点,例如

输入:

list1 = ['apple', 'orange', 'strawberry', 'avocado'] 
list2 = ['1','2','3'] 

输出:

[  
    {"l1": "apple", "l2": "1"},  
    {"l1": "orange", "l2": "2"},  
    {"l1": "strawberry", "l2": "3"},  
    {"l1": "avocado", "l2": "1"} 
 ] 

请注意,对于 “avocado”,我们返回到 “1” 并环绕 list2。

最明显(而且看起来很丑陋)的解决方案是从一个空列表开始,在一个循环中有 2 个索引,每次迭代附加一个新的列表项,较小的一个在到达末尾时“换行”到开头.在 Python 2.7 中是否有一种简洁的方法来执行此操作?

请您参考如下方法:

您可以使用 itertools.cycle包装第二个列表:

from itertools import cycle 
 
lst = [dict(zip(['l1', 'l2'], tup)) for tup in zip(list1, cycle(list2))]