gpt4 book ai didi

python - 如何将 python 列表或 numpy 数组中的所有非零元素移动到一侧?

转载 作者:太空宇宙 更新时间:2023-11-04 07:08:38 25 4
gpt4 key购买 nike

我将对列表或 numpy 数组执行以下操作:

[0, 0, 0, 1, 0, 0, 4, 2, 0, 7, 0, 0, 0]

将所有非零值移到右侧:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 2, 7]

我怎样才能有效地做到这一点?

谢谢

============

对不起,我没说清楚,我需要保留非零元素的顺序。

最佳答案

您可以按 bool 值对列表进行排序。所有虚假值(数字为零)都将被推到列表的前面。 Python 的内置排序看起来很稳定,因此其他值将保持其相对位置。

例子:

>>> a = [0, 0, 0, 1, 0, 0, 5, 2, 0, 7, 0, 0, 0]
>>> sorted(a, key=bool)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 2, 7]

关于python - 如何将 python 列表或 numpy 数组中的所有非零元素移动到一侧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966907/

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