python – 将列表的第一个元素除以第二个,将第三个元素除以第四个,依此类推

目前我有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的解决方案,约1毫秒
>正常的切片解决方案,1.1ms
> 2.5ms的量程解决方案
>使用2.7ms的地图解决方案(使用列表实现它)

转载注明原文:python – 将列表的第一个元素除以第二个,将第三个元素除以第四个,依此类推 - 代码日志