使用列表错误的单个元素扩展列表列表
Extending a list of list with single elements of a list Error
我试图扩展列表的列表以在开头添加一个元素,这是一个数字:
groups = list([list([a, b, c]),list([a2, b2, c2])])
numbers = list([1,2])
结果应该是这样的:
result = [[1,a, b, c],[2,a2, b2, c2]]
到目前为止,这是我的代码:
result = []
for i in groups :
for j in numbers:
result.append([j,i])
你对我可能做错的地方有什么建议吗?或有关如何解决问题的提示?
非常感谢
您的方法的问题在于您使用了两个单独的 for
循环,而您确实想同时遍历两个列表。对于这些情况 zip
派上用场。它允许您聚合多个可迭代对象。所以你可以改为:
result = []
for i,j in zip(numbers, groups):
result.append([i]+j)
print(result)
# [[1, 'a', 'b', 'c'], [2, 'a2', 'b2', 'c2']]
为了更简洁的解决方案,您可以使用列表推导来添加两个列表中的元素(请注意,numbers
中的元素必须转换为列表):
[[i]+j for i,j in zip(numbers, groups)]
输出
[[1, 'a', 'b', 'c'], [2, 'a2', 'b2', 'c2']]
我试图扩展列表的列表以在开头添加一个元素,这是一个数字:
groups = list([list([a, b, c]),list([a2, b2, c2])])
numbers = list([1,2])
结果应该是这样的:
result = [[1,a, b, c],[2,a2, b2, c2]]
到目前为止,这是我的代码:
result = []
for i in groups :
for j in numbers:
result.append([j,i])
你对我可能做错的地方有什么建议吗?或有关如何解决问题的提示?
非常感谢
您的方法的问题在于您使用了两个单独的 for
循环,而您确实想同时遍历两个列表。对于这些情况 zip
派上用场。它允许您聚合多个可迭代对象。所以你可以改为:
result = []
for i,j in zip(numbers, groups):
result.append([i]+j)
print(result)
# [[1, 'a', 'b', 'c'], [2, 'a2', 'b2', 'c2']]
为了更简洁的解决方案,您可以使用列表推导来添加两个列表中的元素(请注意,numbers
中的元素必须转换为列表):
[[i]+j for i,j in zip(numbers, groups)]
输出
[[1, 'a', 'b', 'c'], [2, 'a2', 'b2', 'c2']]