【问题标题】:How can I assign a value of a existing key in a dictionary?如何分配字典中现有键的值?
【发布时间】:2016-11-09 09:49:30
【问题描述】:

我必须检查一个键是否在字典中。如果它在那里,我必须在变量处分配键的值,否则创建一个带有 raw_input 值的新键。我写了下面的代码,但它不起作用。我必须检查密钥是否在字典中。

例如,我有一个食谱数据库。 “油”几乎出现在所有食谱中,因此我无法为所有数据库行插入 raw_input。所以我想创建一个字典并在那里选择值。

例如,在数据库中,我有 100 行成分为“油”。我将此数据库与另一个匹配。关键是成分的名称(在本例中为“油”),值是特性(玉米油)。带有“油”键的每一行都必须有“玉米油”的值。我可以用字典做这个吗?

dict={}
for item in list:
#if the item is not in the list, I assign new value for a raw_input
    if dict.get(item) is None:
        dict[item]=value
    #if the item is in the list, I assing the previous value
    else:
        dict[item]=value

你能帮帮我吗? 非常感谢。

【问题讨论】:

  • 目前您的代码只是将value 插入到字典中,而不管密钥是否存在。你的问题是什么?您期望会发生什么以及实际发生了什么?请澄清一下。
  • 你在 if 和 else 中做同样的事情,你期望发生什么?
  • 我必须检查密钥是否在字典中。如果键在字典中,我必须在新变量中分配相同的值,否则我必须键入一对{键:值}。例如,我有一个食谱数据库。 Salt几乎是全部,所以我不能为所有数据库行插入一个raw_input。我想创建一个字典并在那里选择值。
  • 确实,if 两个分支都做同样的事情。要检查密钥item 是否存在于dict_ 中,请写入if item in dict_:。另外,不要重新定义内置名称:dict 是类型名称。
  • 如果你能给出示例列表和你想要的最终结果的字典,那就太好了。因为你问的我不清楚

标签: python python-2.7 list dictionary


【解决方案1】:

在这两种情况下,项目分配都会将任何现有值替换为新值;无需检查密钥是否已存在。

d[key] = value

【讨论】:

    【解决方案2】:

    在我看来,你总是在任何情况下执行 dict[item] = value,无论是否存在字典中的项目,那么你必须为字典创建一个新变量,但我不知道您要使用的方法,或者如果密钥已经存在,它将是什么新密钥。

    对不起,我的英语不好,如果你不明白,写出来!

    【讨论】:

      【解决方案3】:

      我认为这会有所帮助。如果键不存在,则分配一个新值,否则不要,因为键已经存在

      dict_a={}
      for item in list:
          if item not in dict_a:
              dict[item]= raw_input() #Assign your raw_input value here
      
      #If the value exist, you don't have to do any change
      

      【讨论】:

      • 如果密钥存在,我必须将值赋给新变量。例如,在数据库中,我有 100 行成分为“油”。我将此数据库与另一个匹配。关键是成分的名称(在本例中为“油”),值是特性(玉米油)。带有“油”键的每一行都必须有“玉米油”的值。我可以用字典做这个吗?
      • 这是我理解的。如果我错了,请纠正我。您有两个表,其中一个表在每一行中都有成分,另一个表有列,例如 |油|玉米油| ,如果您在配料中发现棕榈油,您想将其存储为 |油|棕榈油|在那张桌子上,对吧?
      【解决方案4】:

      一种方法:

      dict={}
      for item in list:
      
          if item not in dict.keys():
              dict[item] = None
      
          dict[item]=value
      

      如果字典的键中不存在项,只需创建一个以None 作为起始值的项。然后,为键赋值(现在你确定它在那里)。

      【讨论】:

        【解决方案5】:

        执行这个它会返回你想要的..

        dict={}
        item = 'key'
        if item in dict.keys(): # item will be some key 
         dict[item]=value
        else:
         get_key = raw_input('new key name you want:')
         dict[get_key] = raw_input('value for corresponding key:')
        
        print 'di',dict 
        

        为此的输出:

        new key name you want:my_key
        value for corresponding key:
        di {'my_key': 'val_for_it'}
        

        【讨论】:

          【解决方案6】:

          这个怎么样,

          d = {}
          
          if item in d:
              d[item] = prev_value
          else:
              d[item] = new_value
          
          # OR in one line
          d[item] = prev_value if item in d else new_value
          

          【讨论】:

            【解决方案7】:

            检查字典中的项目是否在其他输入()

            dict = {}
            for item in selection_list:
                dict[item] = new_val if item in dict else raw_input()
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-04-08
              • 2021-10-25
              • 1970-01-01
              • 2021-09-01
              • 1970-01-01
              • 2021-05-12
              相关资源
              最近更新 更多