我有一个排序地图,用于存储字典的键和值:
def sorted_map(map):
ms = sorted(map.iteritems(), key=lambda (k,v): (-v,k))
return ms
它将网络节点存储为键,将它们的度数存储为值 - 输出如下:
for line in ms:
print line
('Node n', 11)
('Node n+1', 11)
('Node n+2', 11)
值范围从~1000到0.我只需要选择那些值大于/等于10的节点(键)。最好将它们存储到新的dict(key:value)中。有办法吗?
答案 0 :(得分:2)
只需从原始字典项创建一个新字典,保持键值> = 10
的键/值对d = {1:23,2:20,3:10,4:9,5:1}
print({k:v for k,v in d.items() if v >=10})
{1: 23, 2: 20, 3: 10}
如果您只是想要一个新的字典,则不需要排序。
答案 1 :(得分:1)
def sorted_map(dictionary):
ms = sorted(dictionary.iteritems(), key=lambda (k, v): (-v, k))
return ms
star_map = {
'Node 1': 11,
'Node 2': 12,
'Node 3': 9,
}
filtered = filter(lambda x: x[1] >= 10, sorted_map(star_map))
print(dict(filtered))
注意:您不应将map
用作变量名,因为这是一个内置函数。