如何将下面列表中的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 :(得分:2)
你几乎得到了它。问题是你只是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)
答案 1 :(得分:1)
这个怎么样:
[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
分区的价值;选择一个对你的问题更有意义的那个。
答案 2 :(得分:1)
_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]
答案 3 :(得分:0)
如果您要做的只是在_list中将0替换为1,您只需更改if语句即可。而不是如果x == 0:print 1,您需要:
for x in _list:
if x ==0:
x == 1