繁体   English   中英

无法理解代码行为-python

[英]Not able to understand code behaviour - python

我只是从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'}])

请说明所提及代码的输出。 为什么要打印每个数据字典的第二个键值对,即'data':'01',依此类推。

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”值, 每个值应为该元素的“数据”值

您已创建字典列表

数据= [{'id':12,'数据':'01'},{'id':10,'数据':'05'},{'id':11,'数据':'07'} ,]

如果我们分割第一条语句,那么我们将得到以下结果。

{d ['id']:d表示数据中的d}

{10:{'data':'05','id':10},11:{'data':'07','id':11},12:{'data':'01','id ':12}}

d是您的第一个字典 ,而您正在使用d [id]创建新的字典

d ['id']:d-> 10:{'data':'05','id':10}

values() :此方法返回给定字典中所有可用值的列表。

在您的示例中3 dict是值。

这就是为什么您得到类似的结果。

[{'data':'05','id':10},{'data':'07','id':11},{'data':'01','id':12}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM