Python 函数 + 字典
Python function + dict
抱歉,这可能是非常基本的内容。我是 python 的新手,无法指出这里出了什么问题
我有这本字典:
Board = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ',
'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ',
'low-L': ' ', 'low-M': ' ', 'low-R': ' '}
我正在尝试编写一个接受数字 1-9 的函数,将其转换为表示这些位置的字典键,并且 return True if value == ' ':
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) == ''
错误:类型错误:无法散列的类型:'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 等效的东西
Board.get(switcher) == ''
switcher 是一个命令。也许你想要 Board.get(switcher.get(Space)) == ' '
.get
方法接受一个密钥。您传入了 switcher
这是一个字典(dict
不可哈希,因此会出现错误)。
首先使用 .get
;
获取密钥
例如switcher.get(Space)
然后:Board.get(switcher.get(Space)) == ' '
抱歉,这可能是非常基本的内容。我是 python 的新手,无法指出这里出了什么问题
我有这本字典:
Board = {'top-L': ' ', 'top-M': ' ', 'top-R': ' ',
'mid-L': ' ', 'mid-M': ' ', 'mid-R': ' ',
'low-L': ' ', 'low-M': ' ', 'low-R': ' '}
我正在尝试编写一个接受数字 1-9 的函数,将其转换为表示这些位置的字典键,并且 return True if value == ' ':
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) == ''
错误:类型错误:无法散列的类型:'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 等效的东西
Board.get(switcher) == ''
switcher 是一个命令。也许你想要 Board.get(switcher.get(Space)) == ' '
.get
方法接受一个密钥。您传入了 switcher
这是一个字典(dict
不可哈希,因此会出现错误)。
首先使用 .get
;
例如switcher.get(Space)
然后:Board.get(switcher.get(Space)) == ' '