python - 将列表附加到列表列表
问题描述
在下面的代码中,我试图将一个名为 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 元素的总和。有没有人有关于如何做到这一点的建议?
解决方案
首先,您正在尝试扩展列表,而不是附加到它。具体来说,你想做
b[2].extend(a)
append()
将单个元素添加到列表中。extend()
将许多元素添加到列表中。extend()
接受任何可迭代对象,而不仅仅是列表。但最常见的是传递一个列表。
一旦你有你想要的列表,例如
[[4], [3], [8, 5, 4]]
那么你需要连接这些列表以获得一个扁平的整数列表。你可以使用sum()
它——添加列表与添加整数没有什么不同。
b = sum(b, [])
这里的诀窍是您必须将初始(空)值传递给sum()
,否则它会尝试将列表添加进去b
,就好像它们是数字一样。
最后,您可以按照您的意图对展平列表求和:
sum(b)
推荐阅读
- mysql - 需要帮助查找 SQL 代码中的语法错误
- security - 前 5 分钟蜡烛 OHLC 与 valuewhen
- python - Python 字符串累加器
- jsonschema - 根据 Json Schema 中的另一个字段更新字段
- c++ - 使用 C++ 在 DLL 中声明持久变量的最佳方法是什么
- python - 获取“查看函数未返回有效响应”错误
- karate - 在一项功能中运行多个场景,在空手道版本 1.0.1 中仅调用了一个场景
- file-upload - GWT - 使用 FileUpload 上传和获取文件
- java - 无法摆脱 JUnit Vintage Engine
- ruby-on-rails - Ruby on Rails 与 MongoDB 5.0