【问题标题】:dictionaries TypeError: unhashable type:set字典类型错误:不可散列类型:设置
【发布时间】:2016-01-11 18:26:06
【问题描述】:

我正在尝试拆分一个字符串,然后从该字符串中获取一个关键字并在字典中找到它。然后我想调出字典的那一部分,但我遇到了这个错误-

TypeError: unhashable type:set

- 在最后一行:

solutions = {'display': 'take it to a specialist to get fixed','screen':'test'}
problems = ['display','screen','cracked','broken','clear']``
words = ()
query = input("What is the problem? ")
query_split = query.split()
words = query_split
keyword = set(words) & set(problems)
print(keyword)
print (solutions[keyword])

【问题讨论】:

    标签: python list dictionary set typeerror


    【解决方案1】:

    当您执行keyword = set(words) & set(problems) 时,关键字变为set。您可能希望使用 pop 函数将关键字设置为来自该 set 的元素。

    keyword = keyword.pop()

    【讨论】:

      【解决方案2】:

      我不确定其他回答者是否试图理解你在做什么。

      试试这个。我不确定您对 problems 的计划,但这至少会运行并希望您能朝着正确的方向前进:

      solutions = {'display': 'take it to a specialist to get fixed','screen':'test'}
      problems = ['display','screen','cracked','broken','clear']
      query = raw_input("What is the problem? ")
      for word in query.split():
          print(word)
          print(solutions.get(word))
      

      注意 inputraw_input 的变化,并以 str 类型而不是 set 访问字典的键。

      【讨论】:

      • 谢谢 - 这行得通,甚至可能比其他方式更有效,我只是不确定它是否适合我。
      猜你喜欢
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2018-08-03
      相关资源
      最近更新 更多