分享
为什么问答平台  ›  专栏  ›  技术社区  ›  Rahul Kumar

压缩嵌套列表 - Zipping nested lists

  •  2
  • Rahul Kumar  · 技术社区  · 1 周前

    list1=[(1,2,3),(4,5,6),(7,8,9)]
    list2=[10,11,12]
    zippedlist=[(1,2,3,10),(4,5,6,11),(7,8,9,12)]
    

    我最初想打开列表1并运行 zip(*list1,list2)

    我怀疑可以使用一个或多个for循环 zip

    2 回复  |  直到 1 周前
        1
  •  3
  •   Rakesh    1 周前

    使用 zip

    list1=[(1,2,3),(4,5,6),(7,8,9)]
    list2=[10,11,12]
    
    result = [tuple(list(i) + [v]) for i, v in zip(list1, list2)]
    print(result)
    

    [(1, 2, 3, 10), (4, 5, 6, 11), (7, 8, 9, 12)]
    
        2
  •  2
  •   Gerges    1 周前

    您也可以使用 map

    list(map(lambda x, y: x +(y,), list1, list2))
    # [(1, 2, 3, 10), (4, 5, 6, 11), (7, 8, 9, 12)]
    
        3
  •  0
  •   Bob White    1 周前

    更容易理解的是展开元组和联接列表2,然后将其再次转换为元组。

    result = list(map(lambda x, y: (*x, y) , list1, list2))
    

        4
  •  0
  •   Henry Yik    1 周前

    或者简单地使用 +

    list1=[(1,2,3),(4,5,6),(7,8,9)]
    list2=[10,11,12]
    
    new_list = [i+(v,) for i,v in zip(list1,list2)]
    
    #[(1, 2, 3, 10), (4, 5, 6, 11), (7, 8, 9, 12)]