构建高级列表组合

时间:2015-11-07 01:44:52

标签: python list

我有2个与此格式类似的列表:

a= [1,2,3]
b= [1,2,3,4,5,6]

我希望以这种特殊格式配对列表:

以[a,b]格式:

[1,1]
[2,2]
[3,3]
[1,4]
[2,5]
[3,6]

我已经阅读过关于numpy和itertools处理类似案例的内容,但在这种情况下我有点陷入困境。

感谢。

我不是在寻找itertools.izip_longest,因为我不想要None值。必须按照上面示例中的说明配对所有内容。

3 个答案:

答案 0 :(得分:4)

这是你正在寻找的吗?

In [16]: a = [1, 2, 3]

In [17]: b = [1, 2, 3, 4, 5, 6]

In [18]: list(zip(itertools.cycle(a), b))
Out[18]: [(1, 1), (2, 2), (3, 3), (1, 4), (2, 5), (3, 6)]

答案 1 :(得分:1)

有点丑,但无论如何,

count = 0
output = []
while count != len(b):
    for i in range(len(a)):
        array = [a[i], b[count]]
        output.append(array)
        count += 1

答案 2 :(得分:1)

[[a[i % len(a)], b[i]] for i in range(len(b))]