将dict键排序到列表中

时间:2016-09-21 21:49:09

标签: python dictionary

我有一个包含每个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并将它们放入列表中。这可能吗?

2 个答案:

答案 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的答案。