用分母列表中的一些" 0"分隔另一个列表

时间:2016-11-18 14:34:30

标签: python operator-keyword

我有以下内容将一个列表除以另一个列表(它们是向量):

from operator import truediv
x = [1,0,0,7]
y = [2,3,0,5]
z = map(truediv,x,y)

有没有办法跳过y向量中的0?希望不要添加太多的迭代。我的实际列表显然比这个更长(每个大约1200个元素),而且还有很多。

1 个答案:

答案 0 :(得分:3)

您可能需要以下内容:

from __future__ import division
z = [xx / yy for xx, yy in zip(x, y) if yy]
# or
default = 0  # just a guess...
z = [xx / yy if yy else default for xx, yy in zip(x, y)]
在迭代过程中进行过滤是列表推导比在更具功能性的编程风格(例如,使用map)中更具表现力的事情之一。当map更方便时(例如,当应用的函数更复杂时),次,但对于这个简单的情况,我会使用列表理解(或生成器)表达)。