从python字典中选择值并将其串入新的dict

2024-04-24 13:55:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我对存储dict键和值的映射进行了排序:

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的节点(键)。最好把它们储存在新的字典里(关键字:值). 有办法吗?你知道吗


Tags: lambdakey网络nodemapreturn节点排序
2条回答

Padraic提供的dict理解是一个更好的解决方案,但为了了解其中的内容,您可以使用filter和dict函数:

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作为变量名,因为这是一个内置函数。你知道吗

只需从原始dict项创建一个新dict,保留值大于等于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}

如果你只是想一个新的dict排序是不需要的。你知道吗

相关问题 更多 >