如何将下面列表中的 0 值替换为 1,以避免除法错误?
_list=[0,1,2,3]
n=[]
for x in _list:
if x ==0:
print 1
else:
div=2.0/x
n.append(div)
我希望新值 (1) 参与除法。有什么建议么?谢谢。
如何将下面列表中的 0 值替换为 1,以避免除法错误?
_list=[0,1,2,3]
n=[]
for x in _list:
if x ==0:
print 1
else:
div=2.0/x
n.append(div)
我希望新值 (1) 参与除法。有什么建议么?谢谢。
你几乎明白了。问题是您只是print
使用 1,而不是使用它来代替 0。所以:
_list=[0,1,2,3]
n=[]
for x in _list:
if x ==0:
x=1
div=x/2.0
n.append(div)
_list=[0,1,2,3]
print [num/2.0 if num else 0.5 for num in _list]
输出
[0.5, 0.5, 1.0, 1.5]
这个怎么样:
[x/2.0 if x else None for x in _list]
=> [None, 0.5, 1.0, 1.5]
上面的列表推导将返回一个包含划分的列表,None
其中包含0/2
划分发生的位置。或这个:
[x/2.0 for x in _list if x]
=> [0.5, 1.0, 1.5]
以上避免了0/2
除法的价值;选择对您的问题更有意义的一个。
如果您只想在 _list 中将 0 替换为 1,那么您需要做的就是更改 if 语句。而不是 if x == 0: print 1,您需要:
for x in _list:
if x ==0:
x == 1