从列表和偶数长度列表中创建元组(?)列表

时间:2012-12-04 03:29:21

标签: python list tuples

鉴于此

a = ['1', '2']
b = [['a', 'b'], ['c', 'd']]

我怎样才能将这些列表变成[('1', 'a', 'b'), ('2', 'c', 'd')]这样的格式?我试图将它们压缩在一起,但我不希望b作为列表。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:3)

zip仍然是你的朋友:

[tuple([x] + y) for x, y in zip(a, b)]

答案 1 :(得分:1)

试试这个:

[tuple([x] + y) for x, y in zip(a,b)]

答案 2 :(得分:1)

我相信不是让它变得复杂,更简单的方法是展平嵌套的元组/列表

>>> a = ['1', '2']
>>> b = [['a', 'b'], ['c', 'd']]
>>> zip(a, *b)
[('1', 'a', 'c'), ('2', 'b', 'd')]

答案 3 :(得分:0)

如果您不想使用列表理解,可以这样做:

zip(a, *(zip(*b)))

例如:

a = ['1', '2']
b = [['a', 'b'], ['c', 'd']]

new_list = zip(a, *(zip(*b)))

结果:

>>> new_list
[('1', 'a', 'b'), ('2', 'c', 'd')]