在python中水平合并多个列表

时间:2016-10-19 07:43:58

标签: python

我有两个不同的列表,如下面的

A = [(Apple, Mango)]
B = [Grapes]

现在我想得到一个合并列表如下

C = [(Apple,Mango,Grapes)]

python中是否有任何预定义的函数可以获得上面的合并列表。

注意:已经使用的zip方法将结果返回为不同的结果

C = [(Apple,Mango),(Grapes)]

返回上述结果的代码片段是

A = [('Apple','Mango')]
B = ['Grapes']

C = zip(A,B)

print C

5 个答案:

答案 0 :(得分:0)

如果A是元组列表而B是正常列表,则可以使用

A = [('Apple', 'Mango')]
B = ['Grapes']
print [ tuple( sum ( map(list,A), [] ) + B) ]

答案 1 :(得分:0)

对于你的例子,你可以做

C = list(A[0] + (B[0],))

答案 2 :(得分:0)

如果A和B是元组列表,那么您可以使用以下递归函数

输入类似

的内容
A = [('Apple', 'Mango'), ('Mango1')]
B = [('Grapes', 'Banana'), ('Apple1')]

递归功能

def recursive_fun(c, temp_list):
    for i in c:
        if type(i) is tuple:
            recursive_fun(list(i), temp_list)
        else :
            temp_list.append(i)
    return temp_list

<强>输出

[tuple(recursive_fun(A, [])+ recursive_fun(B, []))]

最终输出

[('Apple', 'Mango', 'Mango1', 'Grapes', 'Banana', 'Apple1')]

答案 3 :(得分:0)

这是一种在class MyClass(object): QUERIES_AGGS = { 'query3': { "query": MyClass._make_basic_query, 'aggregations': MyClass._make_query_three_aggregations, 'aggregation_transformations': MyClass._make_query_three_transformations } } @staticmethod def _make_basic_query(): #some code here @staticmethod def _make_query_three_aggregations(): #some code here @staticmethod def _make_query_three_transformations(aggs): #some code here 之后展平元组的方法,它可能在时间复杂度方面表现较差,但即使对于混合类型列表,它也会得到你想要的,如zip和{{1 }}

[str, tuple]

答案 4 :(得分:0)

由于元组不可变,我们无法追加/添加A[0]。让我们解压缩并在列表中创建一个新元组:

[(*A[0], *B)]