dictionaries TypeError: unhashable type:set
dictionaries TypeError: unhashable type:set
我正在尝试拆分一个字符串,然后从该字符串中提取一个关键字并在字典中找到它。然后我想调出字典的那部分,但是我 运行 进入这个错误 -
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])
当您执行 keyword = set(words) & set(problems)
时,关键字变为 set
。您可能希望使用 pop
函数将关键字设置为来自 set
的元素。
即
keyword = keyword.pop()
我不确定其他回答者是否试图理解您在做什么。
试试这个。我不确定你对 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))
请注意 input
到 raw_input
的变化,并且将字典的键访问为 str
类型而不是 set
。
我正在尝试拆分一个字符串,然后从该字符串中提取一个关键字并在字典中找到它。然后我想调出字典的那部分,但是我 运行 进入这个错误 -
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])
当您执行 keyword = set(words) & set(problems)
时,关键字变为 set
。您可能希望使用 pop
函数将关键字设置为来自 set
的元素。
即
keyword = keyword.pop()
我不确定其他回答者是否试图理解您在做什么。
试试这个。我不确定你对 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))
请注意 input
到 raw_input
的变化,并且将字典的键访问为 str
类型而不是 set
。