如何添加两个列表,以便结果列表保持其他列表不变:
['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')])
答案 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
函数并不是非常有用,因为输入与其输出完全相同。