在python中,以这种方式添加两个列表:[' a'' b'] + [' c'] = [[' a&#39 ;,' b&#39],[' C&#39]。我该怎么做呢?

时间:2016-12-25 21:02:11

标签: python list add

如何添加两个列表,以便结果列表保持其他列表不变:

['5','6','7'] + ['1'] + ['9','7'] = [['5','6','7'], ['1'], ['9','7']]

是否可以在python中执行此操作?

当前代码:

def appendy(list_o_list): 
    temp_l = [] 
    for l in list_o_list: 
        temp_l.append(list(l)) 
        new_list=[] 
        new_list = [a + b for a, b in itertools.combinations(temp_l, 2)]                    
        print("app",new_list) 
return (new_list) 

appendy([('g3', 'g1'), ('g3', 'g2')])

2 个答案:

答案 0 :(得分:1)

它没有添加列表,它是附加列表。使用.append()

很容易

只是做:

resulting_list = []
resulting_list.append(lista)
resulting_list.append(listb)
resulting_list.append(listc)

所有原始列表将保持不变,resulting_list将包含已加入的列表。你要做的事情并不完全清楚。

答案 1 :(得分:0)

+意味着对象的连接,直观地说:

[5, 6, 7] + [8, 9]
= [5, 6, 7, 8, 9]

如Darkchili Slayer所述,您通过追加将列表嵌入另一个列表中。事实上,一个相当简单的解决方案就是:

Python 3.4.2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = [5, 6, 7]
>>> b = [8, 9]
>>> c = []
>>> c.append(a)
>>> c.append(b)
>>> c
[[5, 6, 7], [8, 9]]

如果你想获得幻想,你可以使用特殊的variable argument operator, *做这样的事情:

>>> def join_l(*lists):
...     temp = []
...     for l in lists:
...         temp.append(l)
...     return temp
...
>>> join_l([5, 6, 7], [8, 9])
[[5, 6, 7], [8, 9]]

你甚至可以这样做,并使它更容易阅读:

def join_l(*lists):
...     return list(lists)
...
>>> join_l([5, 6, 7], [8, 9])
[[5, 6, 7], [8, 9]]

最后,值得注意的是列表有一个extend函数,它将每个项目附加到另一个列表中。您可以使用它来简化第一个示例:

>>> a = [5, 6, 7]
>>> b = [8, 9]
>>> c = []
>>> c.extend([a, b])
>>> c
[[5, 6, 7], [8, 9]]

在这种情况下,extend函数并不是非常有用,因为输入与其输出完全相同。