将列表附加到列表列表
Appending a list to a list of lists
在下面的代码中,我试图将一个名为 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)
我的建议是使用 itertools 内置包中的 chain 函数以更简洁和 pythonic 的方式实现您的目标。
只需要一行代码:
sum(chain(a, tuple(chain.from_iterable(b))))
如果我没理解错的话,你想要一个充满整数的列表——而不是一个包含整数列表的列表——。
无论如何,我会尝试为他们两个提供解决方案。
for i in range(len(a)):
b[-1].append(a[i])
输出:b = [[4], [3], [8, 5, 4]]
或者可能只是一个列表中的每个数字:
for i in range(len(a)):
b.append([a[i]])
输出:b = [[4], [3], [8], [5], [4]]
在下面的代码中,我试图将一个名为 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)
我的建议是使用 itertools 内置包中的 chain 函数以更简洁和 pythonic 的方式实现您的目标。
只需要一行代码:
sum(chain(a, tuple(chain.from_iterable(b))))
如果我没理解错的话,你想要一个充满整数的列表——而不是一个包含整数列表的列表——。
无论如何,我会尝试为他们两个提供解决方案。
for i in range(len(a)):
b[-1].append(a[i])
输出:b = [[4], [3], [8, 5, 4]]
或者可能只是一个列表中的每个数字:
for i in range(len(a)):
b.append([a[i]])
输出:b = [[4], [3], [8], [5], [4]]