繁体   English   中英

Python dict键具有最大值

[英]Python dict key with max value

我有一本包含IP地址及其可用存储空间的字典。 我正在尝试将IP保存到一个变量,将下一个最高的IP保存到另一个变量。

masterdict: {'192.168.100.102': '1620', '192.168.100.103': '470', '192.168.100.101': '1615'} 

print masterdict

rmip = max(masterdict, key=masterdict.get)

print "<br>rmip<br>"
print rmip 

del masterdict [rmip]

print "<br>masterdict after deletion<br><br>"
print masterdict

nnip = max(masterdict, key=masterdict.get)

print "<br>nnip<br>"
print nnip

但是我得到的输出是:

masterdict {'192.168.100.102':'1620','192.168.100.103':'470','192.168.100.101':'1615'}

rmip 192.168.100.103

删除后的masterdict {'192.168.100.102':'1620','192.168.100.101':'1615'}

nnip 192.168.100.102

为什么将192.168.100.103打印为rmip 难道不是价值最高的那个吗? 192.168.100.102然后101作为nnip

字典中的值是字符串,因此max会将它们作为字符串进行比较。 如果要将它们比较为整数,则需要使用key函数将字符串转换为整数...:

rmip = max(masterdict, key=lambda key: int(masterdict[key])

或将值更改为int ,然后使用当前的max语句:

masterdict = {k: int(v) for k, v in masterdict.items()}
rmip = max(masterdict, key=masterdict.get)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM