有两个列表,我想得到所有可能的情侣。 (一对只能是列表 1 中的一个元素和列表 2 中的另一个元素)
如果我执行双重“foreach”语句,我会立即得到它(我使用的是 python):
couples = []
for e1 in list_1:
for e2 in list_2:
couples.append([l1, l2])
如何以元素以更分散的方式放置的方式对情侣列表进行排序? 例如:
list_1 = [a,b,c]
list_2 = [1,2]
我会得到:
[a, 1]
[a, 2]
[b, 1]
[b, 2]
[c, 1]
[c, 2]
并期望被排序成这样:
[a, 1]
[b, 2]
[c, 1]
[a, 2]
[b, 1]
[c, 2]
我应该使用什么算法来获得这个结果?
最佳答案
from itertools import islice, izip, cycle
list_1 = ['a','b','c']
list_2 = [1,2]
list(islice(izip(cycle(list_1), cycle(list_2)), len(list_1)*len(list_2)))
返回 [('a', 1), ('b', 2), ('c', 1), ('a', 2), ('b', 1), (' c', 2)]
关于python - 从两个列表中排序分布的夫妇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3781342/