0

鉴于

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

我怎样才能将这些列表转换成类似的格式[('1', 'a', 'b'), ('2', 'c', 'd')]?我试图将它们压缩在一起,但我不想b作为一个列表。任何帮助将非常感激。

4

4 回答 4

3

zip 仍然是你的朋友:

[tuple([x] + y) for x, y in zip(a, b)]
于 2012-12-04T03:32:46.350 回答
1

试试这个:

[tuple([x] + y) for x, y in zip(a,b)]
于 2012-12-04T03:33:12.170 回答
1

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

>>> a = ['1', '2']
>>> b = [['a', 'b'], ['c', 'd']]
>>> zip(a, *b)
[('1', 'a', 'c'), ('2', 'b', 'd')]
于 2012-12-04T04:04:09.277 回答
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')]
于 2012-12-04T03:54:26.173 回答