【问题标题】:How to merge two sublists from two different lists in the original如何合并原始中两个不同列表中的两个子列表
【发布时间】:2019-07-31 23:31:30
【问题描述】:

我的两个列表中都有子列表

list1= [['+', '+', '-'], ['+', '-', '+'], ['-', '+'], ['+', '+', '+']]

list2= [['x1', 'x2', '2x3'], ['2x1', 'x2', 'x3'], ['x1', 'x3'], ['3x1', '2x2', '4x3']]

如何根据相同的索引连接 list1 和 list2 并将结果保存到另一个列表中?

我想要的结果是:

list1 = [['+x1', '+x2', '-2x3'], ['+2x1', '-x2', '+x3'],['-x1', '+x3'],['+3x1', '+2x2', '+4x3']]

到目前为止,我只尝试为 1 个子列表执行此操作,但我没有运气将子列表保持原样

for pair in itertools.product(list1[0], list2[0]):
    matrix3_with_signs.append(''.join(pair))

【问题讨论】:

    标签: python list merge


    【解决方案1】:

    检查

    x=[[m+n for m,n in zip(x,y)]for x , y in zip(list1,list2)]
    x
    Out[135]: 
    [['+x1', '+x2', '-2x3'],
     ['+2x1', '-x2', '+x3'],
     ['-x1', '+x3'],
     ['+3x1', '+2x2', '+4x3']]
    

    【讨论】:

      【解决方案2】:

      您可以将函数map() 与运算符concat(或add)一起使用,而不是嵌套的listcomp:

      from operator import concat
      
      [list(map(concat, i, j)) for i, j in zip(list1, list2)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多