我有一个列表列表(通过简单的列表理解生成):
>>> base_lists = [[a, b] for a in range(1, 3) for b in range(1, 6)]
>>> base_lists
[[1,1],[1,2],[1,3],[1,4],[1,5],[2,1],[2,2],[2,3],[2,4],[2,5]]
我想将整个列表转换为一个元组,其中包含列表中的所有值,即:
^{pr2}$最有效的方法是什么?(用列表理解来生成这个元组的方法也是一个可以接受的答案)我已经在这里和Python文档中找到了答案,但是我没有找到合适的答案。在
编辑:
非常感谢所有回答的人!在
编辑:请注意,由于
^{pr2}$base_lists
很短,genexp(具有无限可用内存)非常慢。考虑以下文件tu.py
:现在:
当列表较长时(例如,当性能非常重要时),情况会有点不同。E、 g.在定义
base_lists
的RHS上加一个100 *
:因此,对于长列表来说,只有}具有优势,并且列表理解(当有足够的内存可用时,就像它总是在microbenchmarks中一样;-)比genexps更快。在
withsum
是一个性能灾难——其他的都在同一个范围内,尽管显然{使用
1000 *
,genexp的速度降低了大约10倍(与100 *
相比),它和listcomp的速度降低了大约12倍,而sum的速度大约是180倍(thsum是O(N squared)
,加上它开始遭受严重的堆碎片大小的影响)。在相关问题 更多 >
编程相关推荐