我有两个列表(list_1,list_2(和一个返回两个列表(list_1_f,list_2_f(的函数,我想将list_1_f项添加到list_1,将list_2_f项添加到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]
我总是会有 2 个原始列表,并且扩展将只针对另外两个额外的列表完成,没有其他可能性。因此,最后我将有两个列表,其中包含原始项目以及从函数中获取的项目,输出将是:
list_1 = [1,1,1,10,10,10]
list_2 = [2,2,2,20,20,20]
我已经使用扩展功能尝试了以下行,但没有一个有效:
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)
但我想知道是否可以在不创建两个中间列表的情况下进行扩展。
要处理多个列表,您应该改用嵌套列表。 例如,假设您最初有此嵌套列表:
l = [[1,1,1], [2,2,2]]
您可以zip
嵌套列表,并使用map
使用以下operator.add
扩展返回的子列表:
from operator import add
extended_list = *map(add, *zip(l, lists())),
# ([1, 1, 1, 2, 2, 2], [10, 10, 10, 20, 20, 20])
您可以迭代,因此您可以执行以下操作:
list_1.extend(lists()[0])
list_2.extend(lists()[1])
这有效,但可读性不强。如果创建要追加到list_of_lists=[list_1,list_2]
的列表列表,则可以执行以下操作:
for n in list_of_lists:
list_of_lists[n].extend(lists()[n])
希望对您有所帮助!
你可以用另一个列表扩展一个列表,只需总结它们:
[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]