繁体   English   中英

如何保留python字典值

[英]How to Retain python dictionary value

我正在尝试从下面的列表中创建字典,我只需要2个值,并且希望它们作为键和值。 它仅打印列表中的最后一个dict值,并且缺少“ key”:“ earthquake”

{'locale': 'Raj', 'latlng': 'Sahu', 'include': 'website', 'agent': 'Pramod'}

我希望它能打印

{'locale': 'Raj', 'latlng': 'Sahu', 'include': 'website', 'agent': 'Pramod', 'key':'earthquake'}

我在这里想念什么?

parameters = [
                    {
                        "type": "0",
                        "name": "key",
                        "value": "earthquake"
                    },
                    {
                        "type": "0",
                        "name": "include",
                        "value": "website"
                    }
                ]
    def create():
        for parameter in parameters:
            params = {parameter.get('name'):parameter.get('value')}
        params["locale"] = "Raj"
        params["agent"] = "Pramod"
        params["latlng"] = "Sahu"
        print params
        return params

    if __name__ == '__main__':
        create()

您将在每次循环迭代中替换dict。 尝试将声明放在for循环上方,然后在每次迭代中向其添加键和值,如下所示

params = {}
for parameter in parameters:
    param[parameter.get('name')] = parameter.get('value')
params['locale'] = 'raj'
# ...

您正在遍历词典列表。 因此,在第二遍中,它将密钥设置为include ,并将值设置为website 您需要在循环上方初始化一个字典,在该字典中将存储结果,否则您将继续覆盖它。 您也可以这样做:

params = {}
params["locale"] = "Raj"
params["agent"] = "Pramod"
params["latlng"] = "Sahu"

for parameter in parameters:
    params.update({parameter.get('name'):parameter.get('value')})

使用理解,您可以执行以下操作:

params = { p.get('name'):p.get('value') for p in parameters if p.get('value') == 'earthquake' }
params['locale'] = 'raj'
# ...

暂无
暂无

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

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