python - 从两个列表中排序分布的夫妇

标签 python algorithm sorting

有两个列表,我想得到所有可能的情侣。 (一对只能是列表 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/

相关文章:

python - pip freeze 捕获包名称,就好像它位于 python 索引站 pip 上一样,但事实并非如此。需要完整路径

python - 在 Mac OSX 上安装图形工具

c# - 如何获得在集合数量中找到的最长匹配项,顺序很重要

xml - 如何使用 xmlstarlet 合并两个 xml?

javascript - JavaScript 中的插入排序算法

c# - ASP.NET MVC 3 使用升序、降序选项自定义排序 WebGrid

python - Selenium - 元素不可见 [Python]

python - 在 python 中打印混淆矩阵的精度

algorithm - 寻找财富算法的伪代码

algorithm - 排序算法 : output