【发布时间】:2019-05-03 02:42:50
【问题描述】:
关于如何将两个列表配对的问题已经被问到,但他们都将配对列表创建为tuples。
假设我有两个列表,list1 和 list2
list1 = [0,2,4,6,8]
list2 = [1,3,5,7,9]
将两者合并到一个元组列表中:
pairs = list(zip(list1, list2))
print(pairs)
输出:
>>> [(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]
将列表类型从元组更改为列表:
listPairs = [list(pair) for pair in pairs]
print(listPairs)
输出:
[[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
两者结合:
combined = [list(i) for i in list(zip(list1, list2))]
现在我的问题是:有没有更快的 Pythonic 方式来做到这一点?列表理解已经是 Pythonic 并且在相对非大的列表上相对较快,但是有更快的方法吗?或者这会是最快的方法吗?
我担心的是,当我在两个列表中使用这种方式时,每个列表的大小都超过 300k。
【问题讨论】:
-
为什么不介绍这些方法?
-
根据您的具体用例,延迟映射可能是合适的。
-
@DanielMesejo 个人资料的意思是提供一个具体的例子吗?一个场景?
-
我的意思是你为什么不测量你提到的方法的速度。在衡量方法的效率之后,您最终会知道什么是最好的。
-
@DanielMesejo 好点,但如果我知道该怎么做,我就不会问了。我对将其应用于大型列表的一般情况感兴趣。
标签: python python-3.x list performance loops