我有以下的由另一划分一个列表(它们是矢量):分母列表除以名单由另一个与一些“0”
from operator import truediv
x = [1,0,0,7]
y = [2,3,0,5]
z = map(truediv,x,y)
有没有办法跳过0在y矢量?希望不要添加太多迭代。我的实际列表显然比这更长(每个约1200个元素),并且有很多。
我有以下的由另一划分一个列表(它们是矢量):分母列表除以名单由另一个与一些“0”
from operator import truediv
x = [1,0,0,7]
y = [2,3,0,5]
z = map(truediv,x,y)
有没有办法跳过0在y矢量?希望不要添加太多迭代。我的实际列表显然比这更长(每个约1200个元素),并且有很多。
你可能想是这样的:
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
更方便(例如,当被应用的功能更复杂),但对于这个简单的情况,我会与列表理解(或生成器表达式)去。
当'y'中的数字为0时'z'中发生了什么?例如,该项目是否必须被忽略或者你想要'x'的值? –