我有一个包含每个IP的IP地址和高清空间的字典。
{'192.168.100.102':'7.3G','192.168.100.103':'3.5G','192.168.100.101':'7.4G','192.168.100.107':'17G'}
我想获取具有最大空间的三个IP并将它们放入列表中。这可能吗?
答案 0 :(得分:1)
从值中删除尾随的'G'
部分,并将其转换为排序键中的float
:
ips = {'192.168.100.102': '7.3G', '192.168.100.103': '3.5G', '192.168.100.101': '7.4G', '192.168.100.107': '17G'}
sorted_ips = sorted(ips, key=lambda x: float(ips[x][:-1]), reverse=True)[:3]
print(sorted_ips)
# ['192.168.100.107', '192.168.100.101', '192.168.100.102']
答案 1 :(得分:0)
这应该有效:
ips = {'192.168.100.102': '7.3G', '192.168.100.103': '3.5G', '192.168.100.101': '7.4G', '192.168.100.107': '17G'}
sorted(ips, key=ips.get)[:3]
实际上,由于每个值中的G,这不起作用,请使用@Moses Koledoye的答案。