代码之家  ›  专栏  ›  技术社区  ›  Chaban33

用tuple、list和integer合并2个列表

  •  0
  • Chaban33  · 技术社区  · 5 年前

    值6,0从不改变,只有3120这样的值可以改变,其他的值可以在第二个列表中打赌多个整数,如 list1 = [(6, 0, [3120,2121,14141])]

    list3 = [(6, 0, [3120, 3116])]
    

    我的列表

    list1 =  [(6, 0, [3120])]
    

    list2 = [(6, 0, [3116])]
    
    2 回复  |  直到 5 年前
        1
  •  1
  •   Kunal Mukherjee    5 年前

    如果元组中的前两项不会因问题而改变,则可以这样尝试。


    list1 =  [(6, 0, [3120])]
    list2 = [(6, 0, [3116])]
    
    def add_two_lists(list1, list2):
        # Destructure the first element which is a tuple in both lists
        l1_first, l1_second, rest_first = list1[0]
        l2_first, l2second, rest_second = list2[0]
        res_tuple = (l1_first, l1_second, rest_first + rest_second)
        res_list = [res_tuple]
        return res_list
    
    print(add_two_lists(list1, list2))
    
        2
  •  1
  •   Ashu Grover    5 年前

    这应该能帮到你:

    list1 =  [(6, 0, [3120])]
    
    list2 = [(6, 0, [3116])]
    
    temp_list1 = list(list1[0])
    
    temp_list2 = list(list2[0])
    
    temp_list1[2].append(temp_list2[2][0])
    
    final_tuple= tuple(temp_list1)
    
    list3=[]
    list3.append(final_tuple)
    
    print(list3)
    

    印刷品:

    [(6, 0, [3120, 3116])]
    
        3
  •  1
  •   Austin    5 年前

    对于示例输入,可以执行以下操作:

    list3 = [list1[0][:2] + tuple([list1[0][2] + list2[0][2]])]
    # [(6, 0, [3120, 3116])]
    

    list1 = [(6, 0, [3120,2121,14141])]
    list2 = [(6, 0, [3116])]
    
    list3 = [list1[0][:2] + tuple([list1[0][2] + list2[0][2]])]
    
    print(list3)
    # [(6, 0, [3120, 2121, 14141, 3116])]
    
        4
  •  1
  •   bkawan    5 年前

    假设list1和list 2的长度相等,可以执行以下操作。

    
    list1 =  [(6, 0, [2,4,8]),(3, 5, [3,5,7]),]
    list2 =  [(6, 0, [10,12,14]),(3, 5, [9,11,13,15]),]
    
    final_list = []
    
    for i, v in enumerate(list1):
        list3 = [(list1[i])] + [(list2[i])]
        final = list3[0][:2] + tuple([list3[0][2] + list3[1][2]])
        final_list.append(final)
    
    print(final_list)
    
    Out[1]: [(6, 0, [2, 4, 8, 10, 12, 14]), 
             (3, 5, [3, 5, 7, 9, 11, 13, 15])]