将字典的每个值加倍[关闭]

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

【讨论】:

以上是关于将字典的每个值加倍[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将数组中键的值添加到字典中? [关闭]

超高性能 C/C++ 哈希映射(表、字典)[关闭]

如何使用 Swift 将具有两个不同键的两个值存储到数组或字典中? [关闭]

从python字典如何将键和值保存到* .txt文件[关闭]

在字典中找到列表的最小值[关闭]

将列表字典中的每个值(列表)写入新行