Python 同时扩展两个列表
我有两个列表(list_1,list_2)和一个返回两个列表(list_1,list_2)的函数,我想将list_1的项目添加到list_1,将list_2的项目添加到list_2:Python 同时扩展两个列表,python,list,Python,List,我有两个列表(list_1,list_2)和一个返回两个列表(list_1,list_2)的函数,我想将list_1的项目添加到list_1,将list_2的项目添加到list_2: def lists(): list_1_f = [10,10,10] list_2_f = [20,20,20] return list_1_f,list_2_f list_1, list_2 = [1,1,1], [2,2,2] 我总是会有两个原始列表和扩展将要做的只是另外两个
def lists():
list_1_f = [10,10,10]
list_2_f = [20,20,20]
return list_1_f,list_2_f
list_1, list_2 = [1,1,1], [2,2,2]
我总是会有两个原始列表和扩展将要做的只是另外两个额外的列表,没有其他的可能性。因此,在最后,我将有两个列表,其中包含原始项和从函数中获得的项,并且输出为:
list_1 = [1,1,1,10,10,10]
list_2 = [2,2,2,20,20,20]
我尝试过使用extend函数执行以下行,但都不起作用:
list_1.extend([]), list_2.extend([]) = lists()
list_1.extend(), list_2.extend() = lists()
list_1.extend, list_2.extend = lists()
我总是可以做到以下几点:
list_1a, list_2a = lists()
list_1.extend(list_1a)
list_2.extend(list_2a)
for n in list_of_lists:
list_of_lists[n].extend(lists()[n])
但是我想知道是否有可能在不创建两个中间列表的情况下进行扩展。对于处理多个列表,您应该使用嵌套列表。例如,假设您最初拥有此嵌套列表:
l = [[1,1,1], [2,2,2]]
您可以使用嵌套列表和扩展返回的子列表,方法是:
只需对列表进行汇总,即可将一个列表扩展为另一个列表:
[1,2,3]+[4,5,6]
[1,2,3,4,5,6]
因此,您的代码可能如下所示:
def lists():
list_1_f = [10,10,10]
list_2_f = [20,20,20]
return list_1_f,list_2_f
list1 = [0]
list2 = [999]
list1 = list1 + lists()[0]
list2 = list2 + lists()[1]
print(list1, list2)
[0,10,10,10][999,20,20,20]
您可以进行迭代,因此可以执行以下操作:
list_1.extend(lists()[0])
list_2.extend(lists()[1])
这是可行的,但可读性不强。如果您制作了一个要附加到list\u of_list=[list\u 1,list\u 2]
的列表,则可以执行以下操作:
list_1a, list_2a = lists()
list_1.extend(list_1a)
list_2.extend(list_2a)
for n in list_of_lists:
list_of_lists[n].extend(lists()[n])
希望有帮助你不是在中间创造两个列表,它们已经存在于记忆中,你只是给它们起名字而已。我不认为有一个简单的选项可以做到这一点,因为
=lists()
正在将此值分配给=
之前的名称,但您不希望分配,您希望将该值传递给一个方法。这不应该被设置为OP之前提出的问题的副本,该问题最初由于不清楚而关闭。这个问题后来被修改了,现在似乎更清楚了。所以reopening@yatu这是一模一样的!是的@AndrasDeak那个傻瓜的问题在被关闭后被修改了。最初还不清楚。这就是它关闭的原因。那篇文章的更新和更清晰的版本与这篇文章相同,但由于没有重新打开,OP决定继续提问?@yatu,另一个问题因不清楚而关闭,所以这篇文章不是重复?你失去了我。