一次扩展两个列表



我有两个列表(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]

相关内容

  • 没有找到相关文章

最新更新