【问题标题】:Appending multiple values to a key in a dictionary将多个值附加到字典中的键
【发布时间】:2014-04-22 01:50:09
【问题描述】:

lst 是一个字符串列表。

我不断收到错误消息,说追加不适用于字符串类型。 word_dict[len(word)] 是一个字符串是有道理的,但我不确定如何将多个值附加到同一个键。

for word in lst:
    if len(word) == int(wordLength):
        if len(word) in word_dict:
            word_dict[len(word)] = word_dict[len(word)].append(word)
        else:
            word_dict[len(word)] = word

print word_dict

【问题讨论】:

    标签: python dictionary append


    【解决方案1】:

    使值成为单词列表。 collections.defaultdict(list) 可以自动完成:

    word_dict = collections.defaultdict(list)
    
    ...
    
    # Whether the key has anything associated with it or not
    word_dict[whatever].append(word)
    

    【讨论】:

      【解决方案2】:

      String 类没有 append 函数,这就是为什么你有一个 here。

      在此处查看字符串函数:http://docs.python.org/2/library/string.html

      要附加字符串,请使用 +

      string1 = "hi my name is: "
      string2 = "ryan miller"
      print string1 + string2
      

      合并列表时使用追加。

      所以而不是:

      word_dict[len(word)] = word_dict[len(word)].append(word)
      

      用途:

      word_dict[len(word)] = word_dict[len(word)] + word
      

      【讨论】:

        【解决方案3】:

        您在这里遇到的唯一问题是您将值设置为字符串,即“单词”。该错误是因为您无法在字符串中附加元素,因此您唯一要做的就是确保将值设置为列表。您可以将元素附加到列表中。

        对于 lst 中的单词:

        如果 len(word) == int(wordLength):

           if len(word) in word_dict:
        
               word_dict[len(word)] = word_dict[len(word)].append(word)
        
           else:
        
               word_dict[len(word)] = [word]
        

        打印 word_dict

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-09-07
          • 2023-03-31
          • 2019-02-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-09
          • 2022-11-11
          相关资源
          最近更新 更多