我有以下的由另一劃分一個列表(它們是矢量):分母列表除以名單由另一個與一些「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'的值? –