gpt4 book ai didi

python - 将所有非零值放在数组的右边

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:17:00 25 4
gpt4 key购买 nike

我有一个包含整数的 n 个元素的固定大小数组。我想将所有非零值放在数组的右侧。

例子:

[1, 0, 0, 4] => [0, 0, 1, 4]
[2, 0, 4, 3] => [0, 2, 4, 3]
[1, 0, 0] => [0, 0, 1]

执行此操作的简单算法是什么?

这是我目前拥有的,但它只会将索引处的元素向右移动

def slide(arr):

i = len(arr) - 2
while i >= 0:

if arr[i] != 0 and arr[i + 1] == 0:
arr[i + 1] = arr[i]
arr[i] = 0

i -= 1

print(arr)

最佳答案

我会计算零,删除它们并将它们包含在开头:

zeros = [0] * arr.count(0)
while 0 in arr:
arr.remove(0)
arr = zeros + arr

关于python - 将所有非零值放在数组的右边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55118747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com