我正在尝试解析一组数据,其中一些键以百分号作为第一个字符。如果百分号是键中的第一个字符,为什么 max() 函数会返回不正确的答案?
>>> mdict = {'a' : 1, 'b' : 2, '%c' : 4}
>>> max(mdict)
'b'
有没有办法在不重新映射键的情况下解决这个问题?
我正在尝试解析一组数据,其中一些键以百分号作为第一个字符。如果百分号是键中的第一个字符,为什么 max() 函数会返回不正确的答案?
>>> mdict = {'a' : 1, 'b' : 2, '%c' : 4}
>>> max(mdict)
'b'
有没有办法在不重新映射键的情况下解决这个问题?
您将获得最大键(按字典顺序)。max()
只看键,不看值,除非你用key
函数告诉它。在or%c
之前排序,所以最大键是:a
b
b
>>> max({'a': 100, 'b': 0, '%c': 50})
'b'
>>> min({'a': 100, 'b': 0, '%c': 50})
'%c'
如果您期望最大值,请使用:
max(mdict, key=mdict.get)
演示:
>>> mdict = {'a' : 1, 'b' : 2, '%c' : 4}
>>> max(mdict, key=mdict.get)
'%c'