用列表错误的单个元素扩展列表列表

时间:2019-03-05 17:02:58

标签: python list nested-lists

我试图扩展列表列表以在开头添加一个元素,该元素是一个数字:

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])

您对我可能做错了什么建议吗?或有关如何解决该问题的提示?

非常感谢

1 个答案:

答案 0 :(得分:2)

您的方法的问题在于,当您确实要同时遍历两个列表时,您正在使用两个单独的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']]