将字典的每个值加倍[关闭]
Posted
技术标签:
【中文标题】将字典的每个值加倍[关闭]【英文标题】:double every value of dictionary [closed] 【发布时间】:2021-07-09 06:50:26 【问题描述】:我想将字典的每个值加倍(仅将值加倍,不要更改键)。 我尝试使用 update()` 方法,通常将其值乘以 2。
# Sol 1:
dict1 = "dhoni":50,"jadeja":45,"kohli":60
dict1["dhoni"]= 100
dict1["jadeja"]= 90
dict1["kohli"]= 120
print(dict1)
# sol 2:
dict2= "dhoni":50,"jadeja":45,"kohli":60
dict2["dhoni"]= 50*2
dict2["jadeja"]= 45*2
dict2["kohli"]= 60*2
print(dict2)
# sol 3:
dict3 = "dhoni":50,"jadeja":45,"kohli":60
x=dict3.values()
dict3["dhoni"]=100
dict3["jadeja"]=90
dict3["kohli"]=120
print(dict3)
【问题讨论】:
除非您特别询问如何解决跨版本兼容性问题(在这种情况下,您的问题显然应该描述该问题),否则您不应混用python-2.7和python-3.x 标签。我暂时把它们都删除了。 我看不出解决方案 1 和 3 有何不同,我也看不出您的要求 你的代码根本没有使用更新方法。需要更多详细信息和说明您对更新方法的确切问题是什么。 【参考方案1】:这将满足您的需求。
dict1 = "dhoni":50,"jadeja":45,"kohli":60
new_dict = dict(k: 2*v for k,v in dict1.items())
Output:
new_dict = 'dhoni': 100, 'jadeja': 90, 'kohli': 120
如果你想就地更新dict1
,那么:
for k,v in dict1.items():
dict1[k] = 2*v
Output:
dict1 = 'dhoni': 100, 'jadeja': 90, 'kohli': 120
【讨论】:
【参考方案2】:我假设您想将它们全部加倍,并且所有值都是 int 或 floats。
for key, value in dictionary.items():
dictionary[key] = value * 2
编辑: 由于您有多个字典,您可以将它们添加到列表中。
dict_list = [dict1, dict2, dict3]
for dict in dict_list:
for key, value in dictionary.items():
dictionary[key] = value * 2
【讨论】:
以上是关于将字典的每个值加倍[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift 将具有两个不同键的两个值存储到数组或字典中? [关闭]