Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将所有零移到列表的末尾,而不使用False_Python_Sorting - Fatal编程技术网

Python 将所有零移到列表的末尾,而不使用False

Python 将所有零移到列表的末尾,而不使用False,python,sorting,Python,Sorting,假设我有一个列表:[9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9,False],我想把所有的零移到末尾 我知道我可以使用: sorted([9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9], key=lambda x: x == 0) 但它也会移到列表的末尾,这不是我想要的 如何只移动零,但在其原始位置保留假值?由于bool是int的子类,而False==0确实是真的,我们的排序键函数的成功取决于此,如果您希望将

假设我有一个列表:[9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9,False],我想把所有的零移到末尾

我知道我可以使用:

sorted([9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9], key=lambda x: x == 0)
但它也会移到列表的末尾,这不是我想要的

如何只移动零,但在其原始位置保留假值?

由于bool是int的子类,而False==0确实是真的,我们的排序键函数的成功取决于此,如果您希望将False视为非零,则需要将其作为另一个条件添加:

sorted([9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9,False], 
       key=lambda x: (x == 0) and x is not False)
屈服

[9, 9, 1, 2, 1, 1, 3, 1, 9, 9, False, 0.0, 0, 0, 0, 0.0, 0, 0, 0, 0, 0]
由于bool是int的一个子类,False==0确实是True,因此排序键函数的成功取决于此,如果希望将False视为非零,则需要将其作为另一个条件添加:

sorted([9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9,False], 
       key=lambda x: (x == 0) and x is not False)
屈服

[9, 9, 1, 2, 1, 1, 3, 1, 9, 9, False, 0.0, 0, 0, 0, 0.0, 0, 0, 0, 0, 0]