如果单独的键值对为True,则更新值

时间:2016-05-17 02:11:16

标签: python-3.x dictionary

如果其他key, value pair评估为真,如何更新key, value pair

bank = {
    "88386180860608512" : {      # This is a unique id number
        "balance" : 100,
        "name" : "Aehnon"
    },
    "88469127777243136" : {     # This is a unique id number
        "balance" : 100,
        "name" : "Balanceofevil"
    },
    "89741285950246912" : {     # This is a unique id number
        "balance" : 3310,
        "name" : "Sharky"
    }
}

如果我的代码给了我一个名单,[" Sharky"," Aehnon"],我需要将这两个用户的余额增加50个。问题是我不知道他们的身份号码"。

为了进一步说明,我想将每个余额更新50,其中匹配key, value(IE"名称":Sharky与名称匹配" Sharky" in我的清单)。

到目前为止,我知道如果我这样做,我可以验证一个名称:

b  = [subdict["name"] for subdict in bank.values()]
if "Aehnon" in b:
    print("True")
else:
    print("False)

评估为:

True

但我不确定如何使用更大的列表动态执行此操作以更新余额。

1 个答案:

答案 0 :(得分:1)

这是你想要的吗?

bank = {
    "88386180860608512" : {      # This is a unique id number
        "balance" : 100,
        "name" : "Aehnon"
    },
    "88469127777243136" : {     # This is a unique id number
        "balance" : 100,
        "name" : "Balanceofevil"
    },
    "89741285950246912" : {     # This is a unique id number
        "balance" : 3310,
        "name" : "Sharky"
    }
}

names = ["Sharky", "Aehnon"]

for v in bank.values():
    if v["name"] in names:
        v['balance'] += 50

print(bank)