2 回答

TA贡献1111条经验 获得超0个赞
但是由于某种我不能称之为原因的原因,它没有输入我输入的第一个 if 语句:
您需要==用于比较值。is用于在 Python 中比较身份。有关Python中的vs的信息,请参阅此内容。==is
尝试这个:
def move_zeros(a):
r = [i for i in a if not isinstance(i, (float, int)) or str(i) not in ('0.0', '0')]
r += [0] * (len(a) - len(r))
return r
print(move_zeros([9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9]))
输出:
[9, 9, 1, 2, 1, 1, 3, 1, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

TA贡献1779条经验 获得超6个赞
尝试这个
def move_zeros(a):
res = []
x = 0
for num in a:
if str(num) == '0.0' or str(num) == '0':
x += 1
else:
res.append(num)
return res + [0] * x
print(move_zeros([9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9]))
输出:
[9, 9, 1, 2, 1, 1, 3, 1, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
添加回答
举报