如何结合二维列表元素考虑顺序



我有一个Python脚本,它将解析文件中的一些值,并将其存储在2d列表中,如下所示:

[['x'], ['Y'], ['Z']]
[['99'], ['88'], ['77']]
[['host1'], ['host2'], ['host3']]
[['a', 'b', 'c','d','e'], ['f, 'g', 'h','i','j'], ['k', 'l', 'm','n','o']]

我想要实现的是使用以下顺序将这些列表组合成一个大列表

[[['X'],['99'],['host1'], ['a','b','c','d','e']], [['Y'], ['88'], ['host2'], ['f','g','h','i',j]]] etc .. 

我已经在stackoverflow上搜索了这样的问题,我找不到任何。

任何帮助都将非常感激。

谢谢

让我们来定义你的列表:

>>> a = [['x'], ['Y'], ['Z']]
>>> b = [['99'], ['88'], ['77']]
>>> c = [['host1'], ['host2'], ['host3']]
>>> d = [['a', 'b', 'c','d','e'], ['f', 'g', 'h','i','j'], ['k', 'l', 'm','n','o']]

我相信这是你想要的:

>>> zip(a, b, c, d)
[(['x'], ['99'], ['host1'], ['a', 'b', 'c', 'd', 'e']), (['Y'], ['88'], ['host2'], ['f', 'g', 'h', 'i', 'j']), (['Z'], ['77'], ['host3'], ['k', 'l', 'm', 'n', 'o'])]

正如你得到的优秀答案中已经提到的,使用zip

a=[['x'], ['Y'], ['Z']]
b=[['99'], ['88'], ['77']]
c=[['host1'], ['host2'], ['host3']]
d=[['a', 'b', 'c','d','e'], ['f', 'g', 'h','i','j'], ['k', 'l', 'm','n','o']]
z=[list(el) for el in zip(a,b,c,d)]
print z

生产

[[['x'], ['99'], ['host1'], ['a', 'b', 'c', 'd', 'e']], [['Y'], ['88'], ['host2'], ['f', 'g', 'h', 'i', 'j']], [['Z'], ['77'], ['host3'], ['k', 'l', 'm', 'n', 'o']]]

,它是列表的列表,而不是元组的列表(如问题所示)。

如果对元素所需要做的只是遍历它们并从中读取,则

没有实际的区别。另一方面,如果您需要更改元素并"就地"更改它们,列表允许您这样做(它们是可变的),而元组则不能。

相关内容

  • 没有找到相关文章

最新更新