我想为每个子列表生成一个和,并将它直接添加回子列表。你知道吗
LIST = [[1,1],[2,2],[3,3],[4,4]]
期望输出:
[[1,1,2],[2,2,4],[3,3,6],[4,4,8]]]
我不理想的解决方法是在列表的基础上创建一个新的列表,然后将它们压缩在一起。你知道吗
Sum = map(lambda x: sum(x), LIST)
zip(List,Sum)
结果
[([1, 1], 2),([2, 2], 4),([3, 3], 6),([4, 4], 8)]
这将在一个巨大的清单上完成,所以尽可能地提高效率
在您的案例中,有不同的解决方案可用于生成子列表之和并将其作为元素附加,它们的性能可能会有所不同。你知道吗
已经在Win7上的python3.1.14x64下对10000个元素列表和10000个重复进行了测试
基于map()的soluiton,似乎是最快的。 解决方案使用itertools.starmap文件()和生成器表达式也可以在表演浪漫最后两个生产发电机iterools.starmap文件()您的lambda函数应该稍微更改一下。 第四种解决方案是列表理解。它似乎是最慢的。 您可以使用下面的代码来检查平台上的性能。你知道吗
输出
这在优化问题中可能很有趣: http://www.python.org/doc/essays/list2str.html
你可以使用列表理解,就像这样
输出
如果你想修正你的方法,你可以这样做
列表理解方法要比
map
方法快。所以我更喜欢这样。你知道吗我的机器上的输出
相关问题 更多 >
编程相关推荐