【问题标题】:Python function + dictPython函数+字典
【发布时间】:2021-07-15 05:07:56
【问题描述】:

抱歉,这可能是非常基本的东西。我是 python 新手,无法确定这里出了什么问题

我有这本词典:

Board = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ',
         'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ',
         'low-L': ' ', 'low-M': ' ', 'low-R': ' '}

我正在尝试编写一个接受数字 1-9 的函数,将其转换为表示这些地方的 dict 键,如果 value == ' ' 则返回 True:

def CheckSpace(Space):  # Will return True if space is available
    switcher = {
        1: 'top-L',
        2: 'top-M',
        3: 'top-R',
        4: 'mid-L',
        5: 'mid-M',
        6: 'mid-R',
        7: 'low-L',
        8: 'low-M',
        9: 'low-R',
    }
    return Board.get(switcher) == ''

错误:TypeError:不可散列的类型:'dict' 有人可以给我小费吗?

***编辑 我想我可以这样写那个函数:

def CheckSpace(Space):#Will return True if space is available
    if space == 1:
        place = Board.get('top-L')
    if space == 2:
        place = Board.get('top-M')
    if space == 3:
        place = Board.get('top-R')
    if space == 4:
        place = Board.get('mid-L')
#.... and so on to 9..
return place

但我正在尝试使用与 switch case 等效的东西

【问题讨论】:

标签: python function dictionary switch-statement


【解决方案1】:

Board.get(switcher) == ''

switcher 是一个字典。也许你想要Board.get(switcher.get(Space)) == ' '

【讨论】:

    【解决方案2】:

    .get 方法接受一个密钥。您传入了 switcher 这是一个字典(dicts 不可散列,因此出现错误)。

    首先使用.get获取密钥;

    例如switcher.get(Space)

    然后:Board.get(switcher.get(Space)) == ' '

    【讨论】:

      猜你喜欢
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      相关资源
      最近更新 更多