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

标签 python python-3.x

目前我有 2 个列表,我将它们分开

a = [5,6,7,8]
b = [100,200,300,400]
output = [b/m for b,m in zip(a,b)]

但是由于我的数据库的性质,以不同的方式检索列表 ab 会更快:

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):

  1. Jon Clements 的 iter 解决方案,耗时约 1 毫秒
  2. 1.1ms的普通切片方案
  3. range 2.5ms 的解决方案
  4. map 解决方案(使用 list 实现)耗时 2.7 毫秒

关于python - 将列表的第一个元素除以第二个元素,第三个元素除以第四个元素,依此类推,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27489552/

相关文章:

python - 我如何知道 "bias"是否存在于图层中?

python - 如何在我的录音中显示鼠标指针

python - 为什么要在 Python 中关闭文件?

python - 套接字卡在循环中

python - 为什么我从看似正确对齐的代码中得到 `TabError`?

python - ANTLR4 + Python 从字符串而不是路径解析

python - 在 Scrapy 中处理错误页面

python - 当子文件夹具有相同名称时,Airflow Packaged Dags(压缩)会发生冲突

algorithm - 有没有什么方法可以简单地将二叉搜索树可视化?

python-3.x - 批量读取Cifar10数据集