python - 在 Python 中查找字典的最小键时的特殊情况

标签 python

假设我有以下内容:

x = {"A":2, "1":2,"0":1, "5":2}

print(min(x))

0

这会返回零,因为它应该。理想情况下,我希望它在查看最小数字之前返回任何作为键的字母。也就是说,如果存在字母 A-z 作为键返回,否则返回最小数字。有人对此有任何基本和/或简单的解决方案吗?

最佳答案

按 ASCII 代码,数字位于字母之前:

>>> ord('9')
57
>>> ord('A')
65

所以我们可以检查 max() 是否是一个数字。如果是,则没有任何字母键,我们将使用 min()

x = {"A":2, "1":2,"0":1, "5":2}
m = max(x)
if m.isdigit():
    print(min(x))
else:
    print(m)

您还可以使用 isdigit() 结果作为键排序列表的索引:

x = {"A":2, "1":2,"0":1, "5":2}
s = sorted(x)
print(s[s[-1].isdigit()-1])

关于python - 在 Python 中查找字典的最小键时的特殊情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32162491/

相关文章:

python:是否可以在函数内创建列表?

python - 正确索引字符串列表

python - 在 Python 中使用 CSV.Reader 从 .txt 文件获取列

python - Flask、MySQL 和 SQLAlchemy 查询 ID 错误

python - 扭曲和Web编程该走哪条路?

python - 将数据传递给 Python multiprocessing.Pool 工作进程

python - 用于在 Python 中查找特征的未排序特征值

python - 将字符串和日期写入 Python 3 中的文本文件

python - Python 中列表的极端模式

Python Tkinter 显示名称前面带有 Hi