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

时间:2017-08-02 20:21:48

标签: python dictionary

目前我正在使用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}

我在整个过程中遇到了一些麻烦。任何帮助,将不胜感激。 谢谢。

1 个答案:

答案 0 :(得分:8)

只需使用字典理解

{ 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')将构造一个可重复的2元组,其中包含作为第一个元素的周,以及作为第二个元素的平均值。如果dict(..)构造函数获得2元组的可迭代,它将构造一个字典,其中每个元组的第一个元素是键,元组的第二个元素是相关值。