我想将两个返回的列表附加到两个不同的列表中,例如
def func():
return [1, 2, 3], [4, 5, 6]
list1.append(), list2.append() = func()
有任何想法吗?
您必须先捕获返回值,然后附加:
res1, res2 = func()
list1.append(res1)
list2.append(res2)
你似乎在这里返回列表,你确定你不是要使用list.extend()
吗?
如果您正在扩展list1
and list2
,您可以使用切片分配:
list1[len(list1):], list2[len(list2):] = func()
但这a)对新手来说是令人惊讶的,并且b)在我看来相当难以理解。我仍然会使用单独的分配,然后扩展调用:
res1, res2 = func()
list1.extend(res1)
list2.extend(res2)
为什么不只存储返回值?
a, b = func() #Here we store it in a and b
list1.append(a) #append the first result to a
list2.append(b) #append the second one to b
有了这个,如果a
是以前[10]
和b
以前[20]
,你会得到这个结果:
>>> a, b
[10, [1,2,3]], [20,[4,5,6]]
不,这并不难,不是吗?
顺便说一句,您可能想要合并列表。为此,您可以使用extend
:
list1.extend(a)
希望能帮助到你!
单线解决方案是不可能的(除非你使用一些神秘的黑客,这总是一个坏主意)。
你能得到的最好的是:
>>> list1 = []
>>> list2 = []
>>> def func():
... return [1, 2, 3], [4, 5, 6]
...
>>> a,b = func() # Get the return values
>>> list1.append(a) # Append the first
>>> list2.append(b) # Append the second
>>> list1
[[1, 2, 3]]
>>> list2
[[4, 5, 6]]
>>>
它可读且高效。