如何将两个列表合并在一起?

时间:2014-11-08 13:38:01

标签: python

s=[['aaa'], ['bbb'], ['ccc'], ['ddd']]

我想通过两个元素将这些列表合并在一起,如下所示:

[['aaa','bbb'],['ccc','ddd']]

请帮帮我。我现在不知道怎么做。

谢谢

4 个答案:

答案 0 :(得分:3)

这是一个很好的方法:

s_even = s[0::2]
s_odd = s[1::2]
merged = zip(s_even,s_odd)

或简短版本:

merged = zip(s[0::2], s[1::2])

获取您的确切格式(列表而不是元组,使用的是平面列表):

# flatten list (NOTE: there are *way* more efficient ways)
s = sum(s, [])
# merge using same concept as above
merged = map(list, zip(s[0::2], s[1::2]))

答案 1 :(得分:2)

您可以将maplambda

一起使用
s=[['aaa'], ['bbb'], ['ccc'], ['ddd']]

res= map(lambda i:s[i]+s[i+1], range(0, len(s)-1, 2))
print res

输出:

[['aaa', 'bbb'], ['ccc', 'ddd']]

答案 2 :(得分:1)

您可以使用语法为range的{​​{1}}函数。如果您一次单步执行2个元素,则可以使用列表推导来附加成对的子列表。

range(start, stop, step)

答案 3 :(得分:0)

In [1]: s=[['aaa'], ['bbb'], ['ccc'], ['ddd']]

In [2]: [ [ s[i*2][0], s[i*2 + 1][0] ]  for i in range(len(s)/2) ]
Out[2]: [['aaa', 'bbb'], ['ccc', 'ddd']]

In [3]:

检查Python List Comprehension