如何解决将列表附加到列表列表
在下面的代码中,我试图将一个名为 a 的列表附加到列表 b 的列表中。
a = [5,4]
b = [[4],[3],[8]]
b[2].append(a)
Python 输出
[[4],[8,[5,4]]]
但是,我希望元素作为整数而不是列表附加,所以 b 应该是 [[4],5,4]] 然后我想合并列表所以 b 会是 [4,3,8,4]。我希望能够做到这一点,所以我可以使用 sum 函数来查找 b 元素的总和。有没有人有关于如何做到这一点的建议?
解决方法
首先,您试图扩展一个列表,而不是附加到它。具体来说,你想做
b[2].extend(a)
append()
将单个元素添加到列表中。 extend()
将许多元素添加到列表中。 extend()
接受任何可迭代对象,而不仅仅是列表。但最常见的是传递给它一个列表。
一旦你有你想要的列表,例如
[[4],[3],[8,5,4]]
然后您需要连接这些列表以获得整数的平面列表。您可以使用 sum()
- 添加列表与添加整数没有什么不同。
b = sum(b,[])
这里的技巧是您必须将初始(空)值传递给 sum()
,否则它会尝试将 b
中的列表添加为数字。
最后,您可以按预期对扁平列表求和:
sum(b)
,
我的建议是使用 itertools 内置包中的 chain 函数,以更简洁和 Python 风格的方式实现您的目标。
只需要一行代码:
sum(chain(a,tuple(chain.from_iterable(b))))
,
如果我理解正确的话,你想要一个充满整数的列表 - 而不是一个包含整数列表的列表-。
无论如何,我会尽力为他们提供解决方案。
scopes: ['email']
输出:for i in range(len(a)):
b[-1].append(a[i])
或者可能只是一个列表中的每个数字:
b = [[4],4]]
输出:for i in range(len(a)):
b.append([a[i]])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。