【问题标题】: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.7python-3.x 标签。我暂时把它们都删除了。
  • 我看不出解决方案 1 和 3 有何不同,我也看不出您的要求
  • 你的代码根本没有使用更新方法。需要更多详细信息和说明您对更新方法的确切问题是什么。

标签: python list google-bigquery


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2014-01-02
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 2017-11-30
      相关资源
      最近更新 更多