如何在python中组合2d列表元素 - 考虑顺序

时间:2015-08-10 21:20:12

标签: python list multidimensional-array

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

geom

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

[['x'], ['Y'], ['Z']]

[['99'], ['88'], ['77']]

[['host1'], ['host2'], ['host3']]

[['a', 'b', 'c','d','e'], ['f, 'g', 'h','i','j'], ['k', 'l', 'm','n','o']]

我已经搜索了stackoverflow这样的问题而且我找不到任何问题。

任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:3)

让我们定义你的清单:

>>> 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'])]

答案 1 :(得分:0)

正如您在答案中所提到的,使用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']]]

这是一个列表列表,而不是元组列表(如问题中所示)。

如果你需要对元素做的只是遍历它们并从它们读取,那么没有实际的区别。 另一方面,如果您需要更改元素并将其“就地”更改,则列表允许您执行此操作(它们是可变的),而元组则不允许。