python - 排序函数中 x%2==0 的排序列表给出了我不希望的结果

标签 python

我的数组是

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

如果我使用

对其进行排序
sorted(a, key=lambda x: x % 2 == 0)

我明白了

[1, 3, 5, 7, 9, 0, 2, 4, 6, 8]

我很期待

[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]

这是为什么?

最佳答案

您的关键函数 lambda x : x%2==0 将产生 FalseTrue

>>> False < True
True

结果就是你要求的:-) 你可以通过 reverse=True 或更好

>>> sorted([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: x % 2)
[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]

关于python - 排序函数中 x%2==0 的排序列表给出了我不希望的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64182163/

相关文章:

python - 在Python中获取包含某些文本的文件的更快方法?

python - pytest fixture 没有在类里面被调用

python - 如何要求生成的数据透视表包含所有列组合的可能性?

python - Pyspark:在groupBy之后获得百分比结果

python - 在 Python 中将字符串拆分为列表

python - 模块属性更新不会传播到 Windows 上的子进程

python - Django/Postgresql 内存泄漏和持久连接

python - 匹配两个列表中的字符串

python - 使用 python 3.3 访问 mssql 数据库的最佳方法

python - "ImportError: Failed to load GLFW3 shared library"在 Linux 上没有 root 访问权限