结合两个列表

时间:2014-05-04 19:40:01

标签: python list merge

我正在尝试合并两个列表,如此

coordinates_X = [1, 17, 9]
coordinates_Y = [3, 5, 24]

outcome = [1, 3, 17, 5, 9, 24]

4 个答案:

答案 0 :(得分:3)

列表的长度是否一致?如果是这样,这将为您提供元组列表:

outcome = zip(coordinates_X, coordinates_Y)

然后你可以压扁:

import itertools
outcome = list(itertools.chain.from_iterable(zip(coordinates_X, coordinates_Y)))

对于2.x,itertools也有izip可用,它构建了一个可迭代的元组。但这对于这么小的名单来说是不必要的。在3.x上,zip总是返回一个可迭代的。

如果长度不同,zipitertools.izip将截断结果以匹配较短的列表。如果您需要,itertools.izip_longest可以使用在调用中指定的填充值扩展更短的列表。

答案 1 :(得分:2)

没有itertools的替补:

result = []
for i in zip(coordinates_X,coordinates_Y):
    result.extend(i)

答案 2 :(得分:1)

如果不需要订购,您可以:

coordinates_X + coordinates_Y

此外,您可以使用列表推导来准确输出您的

[ x for y in map(lambda x, y: [x, y], coordinates_X, coordinates_Y) for x in y ]

可能不是最好的方法,但这是我发生的事情:)。

答案 3 :(得分:1)

**您可以使用的代码是:**

  coordinates_X = [1, 17, 9]
    coordinates_Y = [3, 5, 24]

    outcome =coordinates_X+coordinates_Y