【问题标题】:Error in getting values from python dictionary从 python 字典中获取值时出错
【发布时间】:2022-01-02 14:08:04
【问题描述】:

我已经创建了一个 python 字典

user = input('enter a letter: ')
d = {'a': '1', 'b': '2', 'c':'3'}
print(d.get(d))

我运行它并输入

a 

但我总是收到这样的错误

er a letter: a
Traceback (most recent call last):
  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module>
    start(fakepyfile,mainpyfile)
  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
    exec(open(mainpyfile).read(),  __main__.__dict__)
  File "<string>", line 3, in <module>
TypeError: unhashable type: 'dict'

[Program finished]

帮我解决问题!

【问题讨论】:

  • d.get(user) 怎么样?
  • 对不起,我没有得到它,我是这个领域的新手。 : (
  • 所有答案都暗示了同样的事情。您的目标是在字典中查找用户。 d.get(user) 就是这样做的。 d 是字典,user 是您要查找的键。 d.get(d) 尝试使用整个字典作为键。 d 是一个字典(数据类型 dict)。字典键使用一种称为“散列”的技术进行快速查找,但 Python 不能散列整个字典。在您的情况下,您要查找的值应该是“a”、“b”或“c”。你告诉它查找{'a': '1', 'b': '2', 'c':'3'}

标签: python python-3.x interpreter


【解决方案1】:
user = input("enter a letter: ")
d = {"a": "1", "b": "2", "c": "3"}
print(d.get(user)) #user instead of d

【讨论】:

    【解决方案2】:

    您必须将变量与用户输入一起使用:

    user = input('enter a letter: ')
    d = {'a': '1', 'b': '2', 'c':'3'}
    print(d.get(user))
    

    【讨论】:

      【解决方案3】:

      您可以使用d.get(user) 或改用d[user]

      user = input('enter a letter: ')
      d = {'a': '1', 'b': '2', 'c':'3'}
      print(d.get(user))
      

      【讨论】:

        【解决方案4】:

        您正在字典中搜索字典。 使用这个:

        user = input('enter a letter: ')
        d = {'a': '1', 'b': '2', 'c':'3'}
        print(d.get(user))
        

        【讨论】:

          【解决方案5】:

          嗯,我得到了答案,感谢大家帮助我。它正在访问字典中的字典数据。所以解决方案是:-

          user = input('enter a letter: ')
          d = {'a': '1', 'b': '2', 'c':'3'}
          print(d.get(user))
          

          再次感谢大家 ;)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-07-08
            • 1970-01-01
            • 1970-01-01
            • 2013-07-02
            • 2013-08-27
            • 1970-01-01
            • 1970-01-01
            • 2022-11-18
            相关资源
            最近更新 更多