我在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这样的问题而且我找不到任何问题。
任何帮助将不胜感激。
谢谢
答案 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']]]
这是一个列表列表,而不是元组列表(如问题中所示)。
如果你需要对元素做的只是遍历它们并从它们读取,那么没有实际的区别。 另一方面,如果您需要更改元素并将其“就地”更改,则列表允许您执行此操作(它们是可变的),而元组则不允许。