Dan*_*mov 1 python sorting type-conversion
假设我有一个列表:[9,0.0,0,9,1,2,0,1,0,1,0.0,3,0,1,9,0,0,0,0,9,False]我想将所有零移到最后.
这是我的代码:
def move_zeros(array):
new = [int(x) if x is 0.0 else x for x in array ]
new.sort(key=lambda item: item is 0)
return new
Run Code Online (Sandbox Code Playgroud)
但是int(x)不能为0.0没有第二行而工作我无法移动0.0到最后.能帮我找到解决方案0.0吗?
EDITED
我通过eding False到列表更新了原始帖子
由于bool是的一个子类int,并False == 0为True(事实上,我们的成功,sorted key函数依赖于这一点),如果你希望把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)
Run Code Online (Sandbox Code Playgroud)
产量
[9, 9, 1, 2, 1, 1, 3, 1, 9, 9, False, 0.0, 0, 0, 0, 0.0, 0, 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
424 次 |
| 最近记录: |