Python的追加两回,两份不同名单(Python appending two returns to

2019-11-02 15:50发布

我想两人回到列表追加到两种不同的列表,如

def func():
    return [1, 2, 3], [4, 5, 6]

list1.append(), list2.append() = func()

有任何想法吗?

Answer 1:

你必须先获取返回值, 然后附加:

res1, res2 = func()
list1.append(res1)
list2.append(res2)

你似乎是在这里返回列表,你确定你不是说要使用list.extend()呢?

如果您正在扩展list1list2 ,你可以用切片赋值:

list1[len(list1):], list2[len(list2):] = func()

但是这是一个令人惊讶的),以新人和b)在我看来相当不可读。 我仍然使用单独的任务,然后再扩展的呼叫:

res1, res2 = func()
list1.extend(res1)
list2.extend(res2)


Answer 2:

为什么不只是存储的返回值?

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)

希望能帮助到你!



Answer 3:

一个行的解决方案是不可能的(除非你使用一些神秘的黑客,这始终是一个糟糕的主意)。

你可以得到的最好的是:

>>> 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]]
>>>

它的可读性和效率。



文章来源: Python appending two returns to two different lists