我有 2 个不同长度的列表。 选择一份礼物并分配给一个名字,然后将下一份礼物送给下一个名字,依此类推,直到礼物完成。
gifts = ['pencil', 'pen', 'book', 'notebook', 'pencil_box', 'schoolbag', 'stick']
name = ['John', 'Marcus', 'Marie']
预期输出:
John: pencil notebook stick
Marcus: pen pencil_box
Marie: book schoolbag
另一个例子:
gifts = ['car', 'house', 'phone']
name = ['RichieRich']
预期输出:
RichieRich: car house phone
有什么帮助吗?
最佳答案
给你:
from itertools import cycle
from collections import defaultdict
gifts = ['pencil', 'pen', 'book', 'notebook', 'pencil_box', 'schoolbag', 'stick']
names = ['John', 'Marcus', 'Marie']
gifts_by_name = defaultdict(list)
for name, gift in zip(cycle(names), gifts):
gifts_by_name[name].append(gift)
for name in names:
print '%s: %s' % (name, " ".join(gifts_by_name[name]))
关于python - 在python中合并两个不同长度的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56383201/