【发布时间】:2019-04-19 05:56:51
【问题描述】:
def move_zeros(array):
no_zero = [i for i in list(array) if i != int(0)]
print(array)
print(no_zero)
for i in range(array.count(0)):
no_zero.append(0)
return no_zero
这是我用于 codeacademy kata 的代码,其目的是将列表数组中的所有零移动到数组的前面。我的代码在大多数情况下都可以工作,但是在某些情况下代码会卡住,例如它将 False 视为零以及诸如 0.0 之类的值,我该如何更改它以使其影响文字数字 0
编辑:被要求提供预期算法的示例输出
move_zeros([false,1,0,1,2,0,1,3,"a"])
returns[false,1,1,2,1,3,"a",0,0]
而我的代码返回
[1, 1, 2, 1, 3, 'a', 0, 0, 0]
【问题讨论】:
-
str(i) == "0" -
当我执行这个脚本时,我可以看到零被移到了列表的最后?算法正确吗?您可以将示例输入和输出与问题一起添加吗?
-
是的@SwadhikarC,这是算法的预期目标:)