【问题标题】:How to sum up two different nested lists?如何总结两个不同的嵌套列表?
【发布时间】:2021-04-07 15:52:15
【问题描述】:
list_a = [[[1.1, 2.2],
           [3.3, 4.4]],
          [[5.5, 6.6],
           [7.7, 8.8]]]

list_b = [[1.1, 2.2],
          [3.3, 4.4]]

我只想将 list_a 中的列表 [[1.1, 2.2], [3.3, 4.4]] 与 list_b 中的列表 [1.1, 2.2] 相加

例如:1.1+1.1, 2.2+1.1 然后是3.3+2.2, 4.4+2.2。之后,输出将存储回一个空列表。 result = [[2.2, 3.3], [5.5,6.6]].

我真的不知道如何用 for-loop 解决这个问题。

【问题讨论】:

  • 要么使用带索引的 for 循环,要么使用 zip 一起浏览两个列表。 (而在最内层,您需要从 list_a 获取最内层列表的循环,而您只从 list_b 获取一个值)
  • 几乎等同于:How can I sum two nested lists in this case。很好奇他们今天都在,相隔 8 小时。
  • @aneroid 还有一个:How can sum two nested lists in this situation。这是我在 8 小时前的 Morn Asked 中回答的。看起来这是一些测试的问题。
  • @AmitVikramSingh 你链接的那个是我真正要找的那个。我在您的回答中向 OP 发布了“做什么”评论。最终找到另一个。

标签: python for-loop sum nested-lists


【解决方案1】:

您可以使用 zip 同时遍历两个列表。

result = []
for la, lb in zip(list_a, list_b):
    for l, summand in zip(la, lb):
        result.append(list(map(lambda x: x + summand, l)))

print(result)

或者,如果您想将结果分开:

result = []
for la, lb in zip(list_a, list_b):
    temp_result = []
    for l, summand in zip(la, lb):
        temp_result.append(list(map(lambda x: x + summand, l)))
    result.append(temp_result)
    
print(result)

【讨论】:

    【解决方案2】:

    您可以将列表推导与zip 一起使用:

    result = [[round(b+a, 1) for a in A] for A, b in zip(list_a[0], list_b[0])]
    print(result) # [[2.2, 3.3], [5.5, 6.6]]
    

    如果不想四舍五入,可以跳过。

    【讨论】:

      猜你喜欢
      • 2018-08-02
      • 1970-01-01
      • 2015-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多