-4 python python-3.x
我必须创建一个代码(函数),在不使用临时列表的情况下移动列表中的元素,并且该函数必须返回任何内容,我已经尝试了以下方法,但它不起作用,请帮助
def move_zeros_v2(lst):
left = []
right = []
left_a = left.append
right_a = right.append
for x in lst:
if x:
left_a(x)
else:
right_a(x)
left.extend(right)
i = 0
while i < len(left):
lst[i] = left[i]
i = i + 1
x = [1, 0, 3, 0, 0, 5, 7]
z=move_zeros_v2(x)
print(x, z)
Run Code Online (Sandbox Code Playgroud)
这是一种方法:
def move_zeros(lst):
n = len(lst)
lst[:] = filter(None, lst)
lst.extend([0] * (n - len(lst)))
Run Code Online (Sandbox Code Playgroud)