我刚刚开始使用python,现在我正在尝试理解字典理解,但我没有得到以下代码的行为:
data = [
{'id': 12, 'data': '01'},
{'id': 10, 'data': '05'},
{'id': 11, 'data': '07'},
]
{ d['id']:d for d in data }.values()
输出:
dict_values([{'id': 12, 'data': '01'}, {'id': 10, 'data': '05'}, {'id': 11, 'data': '07'}])
请解释上述代码的输出。为什么要打印每个数据字典的第二个键值对,即'数据' 01'等等。
答案 0 :(得分:2)
data是一个包含3个字典的数组,每个字典有2个键:“id”和“data”。
你问python是什么:
{ d['id']:d for d in data }
“为我构建一个字典,其中包含我的数据数组的每个元素的1对键/值。每个键应该是此元素的”id“值,每个值应该是d本身的元素< /强>“
您可能想要做的是:
In [6]: c={ d['id']:d["data"] for d in data}
In [7]: c
Out[7]: {10: '05', 11: '07', 12: '01'
“为我构建一个字典,其中包含我的数据数组的每个元素的1对键/值。每个键应该是此元素的”id“值,而每个值应该是”data“值这个元素“
答案 1 :(得分:2)
您已创建dict列表
data = [ {'id':12,'data':'01'}, {'id':10,'data':'05'}, {'id':11,'数据':'07'}, ]
如果我们分开第一个陈述,那么我们将获得以下结果。
{d ['id']:d代表数据}
{10:{'data':'05','id':10},11:{'data':'07','id':11},12:{'data': '01','id':12}}
d 你是第一个 dict &amp;你正在用 d [id]
创建新的词典d ['id']:d - &gt; 10:{'data':'05','id':10}
values():此方法返回给定字典中所有可用值的列表。
在你的例子中,3 dict是值。
这就是你得到结果的原因。
[{'data':'05','id':10},{'data':'07','id':11},{'data':'01','id ':12}]