首页 > 解决方案 > 将列表附加到列表列表

问题描述

在下面的代码中,我试图将一个名为 a 的列表附加到列表 b 的列表中。

a = [5,4]
b = [[4],[3],[8]]
b[2].append(a)

Python 输出

[[4], [3], [8, [5, 4]]] 

但是,我希望将元素作为整数而不是作为列表附加,所以 b 应该是 [[4], [3], [8, 5, 4]] 然后我想合并列表所以 b 是 [4 , 3, 8, 5, 4]。我希望能够做到这一点,这样我就可以使用 sum 函数来找到 b 元素的总和。有没有人有关于如何做到这一点的建议?

标签: pythonlistappendelement

解决方案


首先,您正在尝试扩展列表,而不是附加到它。具体来说,你想做

b[2].extend(a)

append()将单个元素添加到列表中。extend()将许多元素添加到列表中。extend()接受任何可迭代对象,而不仅仅是列表。但最常见的是传递一个列表。

一旦你有你想要的列表,例如

[[4], [3], [8, 5, 4]] 

那么你需要连接这些列表以获得一个扁平的整数列表。你可以使用sum()它——添加列表与添加整数没有什么不同。

b = sum(b, [])

这里的诀窍是您必须将初始(空)值传递给sum(),否则它会尝试将列表添加进去b,就好像它们是数字一样。

最后,您可以按照您的意图对展平列表求和:

sum(b)

推荐阅读