目前我有 2 个列表,我将它们分开
a = [5,6,7,8]
b = [100,200,300,400]
output = [b/m for b,m in zip(a,b)]
但是由于我的数据库的性质,以不同的方式检索列表 a
和 b
会更快:
data = [5,100,6,200,7,300,8,400]
列表中的第一个值是a
中的第一个值,第二个值是b
中的第一个值,第三个值是a中的第二个值
等等。
output = [5/100,6/200,7/300,8/400]
因此我需要将第一个值除以第二个值,将第三个值除以第四个值,依此类推。现在这没问题,但我需要它尽可能快。有什么建议吗?
最佳答案
您可以为此使用切片:
output = [b / m for b, m in zip(data[::2], data[1::2])]
编辑 3:
我们现在拥有的(len(data) = 8000
):
- Jon Clements 的
iter
解决方案,耗时约 1 毫秒 - 1.1ms的普通切片方案
range
2.5ms 的解决方案map
解决方案(使用list
实现)耗时 2.7 毫秒
关于python - 将列表的第一个元素除以第二个元素,第三个元素除以第四个元素,依此类推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489552/