Skip to main content
 首页 » 编程设计

python之将 python 字典值转换为相应的键值对

2025年05月04日11langtianya

目前我正在使用 Django 查询集并得到如下结果:

[{'week': 29, 'avg': 137.6}, {'week': 30, 'avg': 138.6}, {'week': 31, 'avg': 138.06666666666666}] 

如您所见,它是一个字典列表。

我想简单地处理:

{29: 137.6, 30: 138.6, 31: 138.066} 

我在思考这一切时遇到了一些麻烦。任何帮助,将不胜感激。 谢谢。

请您参考如下方法:

只需使用词典理解:

{ d['week'] : d['avg'] for d in data } 

data 是您的词典列表。这会产生:

>>> { d['week'] : d['avg'] for d in data } 
{29: 137.6, 30: 138.6, 31: 138.06666666666666} 

字典理解因此将遍历 data,并且对于每个元素 d(字典),它将关联 d['week'](键),结果中有 d['avg'](值)。

如果它不是字典列表,但仍然是一个查询集,您应该 - 如 @JonClemens says - 使用以下表达式:

dict(queryset.values_list('week','avg')) 

此处 values_list('week','avg') 将构造一个包含周作为第一个元素,平均值作为第二个元素的二元组迭代器。如果 dict(..) 构造函数获得一个二元组的可迭代对象,它将构造一个字典,其中每个元组的第一个元素是键,元组的第二个元素是关联的值。