Python 是否使用同一密钥访问另一个词典?
我有两个字典,它们都有相同的键,我试图访问第二个字典,使用键作为第一个字典的输入,如下所示Python 是否使用同一密钥访问另一个词典?,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我有两个字典,它们都有相同的键,我试图访问第二个字典,使用键作为第一个字典的输入,如下所示 Players = {0: "Quit", 1: "Player 1", 2: "Player 2", 3: "Player 3", 4: "Player 4", 5: "Player 5" } exits = {0: {"Q": 0},
Players = {0: "Quit",
1: "Player 1",
2: "Player 2",
3: "Player 3",
4: "Player 4",
5: "Player 5"
}
exits = {0: {"Q": 0},
1: {"W": 2, "E": 3, "N": 5, "S": 4, "Q": 0},
2: {"N": 5, "Q": 0},
3: {"W": 1, "Q": 0},
4: {"N": 1, "W": 2, "Q": 0},
5: {"W": 2, "S": 1, "Q": 0} }
avabilablePlayer =",".join(list(Players.values()))
print (avabilablePlayer)
direction = input("Available Players are " + avabilablePlayer + " ").upper()
if direction in exits:
dict_key=exits.get(direction)
print(dict_key)
上面的代码没有从第二个字典返回值,如何在不使用任何方法和函数的情况下修复此问题?首先需要从玩家字典获取玩家索引,然后可以从退出字典获取选项
Players = {0: "Quit",
1: "Player 1",
2: "Player 2",
3: "Player 3"
}
exits = {0: {"Q": 0},
1: {"W": 2, "E": 3, "N": 5, "S": 4, "Q": 0},
2: {"N": 5, "Q": 0},
3: {"W": 1, "Q": 0},
4: {"N": 1, "W": 2, "Q": 0},
5: {"W": 2, "S": 1, "Q": 0}}
avabilablePlayer = ",".join(list(Players.values()))
print(avabilablePlayer)
direction = input("Available Players are " + avabilablePlayer + " ").upper()
player_index = None
for key, value in Players.items():
if direction == value.upper():
player_index = key
break
if player_index is None:
print('Invalid Player')
else:
dict_key = exits.get(player_index)
print(dict_key)
首先需要从玩家字典中获取玩家索引,然后可以从退出字典中获取选项
Players = {0: "Quit",
1: "Player 1",
2: "Player 2",
3: "Player 3"
}
exits = {0: {"Q": 0},
1: {"W": 2, "E": 3, "N": 5, "S": 4, "Q": 0},
2: {"N": 5, "Q": 0},
3: {"W": 1, "Q": 0},
4: {"N": 1, "W": 2, "Q": 0},
5: {"W": 2, "S": 1, "Q": 0}}
avabilablePlayer = ",".join(list(Players.values()))
print(avabilablePlayer)
direction = input("Available Players are " + avabilablePlayer + " ").upper()
player_index = None
for key, value in Players.items():
if direction == value.upper():
player_index = key
break
if player_index is None:
print('Invalid Player')
else:
dict_key = exits.get(player_index)
print(dict_key)
这是你的解决办法
direction = input("Available Players are " + avabilablePlayer + " ").upper()
if int(direction) in exits.keys():
dict_key=exits.get(int(direction))
print(dict_key)
这是你的解决办法
direction = input("Available Players are " + avabilablePlayer + " ").upper()
if int(direction) in exits.keys():
dict_key=exits.get(int(direction))
print(dict_key)
你投的方向是什么?
出口的键是数字0、1、2、3、4和5。如果你尝试使用不同的键,你将一无所获,这看起来就像你正在做的。你想要什么样的输出。你能展示一个示例吗?@BrenBarn,编辑了玩家dictionary@BrenBarn,它们都有0,1,2,3,4,5keys@experiment ,我将把输入作为整数,并从退出字典返回值您为方向输入了什么?出口的键是数字0、1、2、3、4和5。如果你尝试使用不同的键,你将一无所获,这看起来就像你正在做的。你想要什么样的输出。你能展示一个示例吗?@BrenBarn,编辑了玩家dictionary@BrenBarn,它们都有0,1,2,3,4,5keys@experiment ,我将把输入作为整数,并将从退出字典返回值。我尝试在没有播放器索引的情况下运行键,播放器中的值。items():dict_key=exits.get(key)print(dict_key)
,它不会返回。玩家索引需要什么here@Karamzov在方向变量中有玩家名称。您没有整数索引。所以首先你必须得到player_索引。如果我只传递整数作为输入,对于player 1=1,player 2=2,仍然不返回怎么办?如果你将player name作为输入,我的解决方案将有效。但是如果你想传递整数(index),那么检查@experience的解决方案。在dictionary(Players或exits)中,除非你知道键,否则你无法获得值。因为用户传递了玩家名,所以我们没有键(玩家索引),只有值(玩家名)。这就是为什么我要循环整个Players dict并与用户传递的player name匹配,如果匹配,那么我们就有player_索引。有了player_index,我们就可以从退出dict中获取值。对于键,Players.items()中的值,在没有player_index的情况下,dict_key=exits.get(key)print(dict_key)
,它不会返回。玩家索引需要什么here@Karamzov在方向变量中有玩家名称。您没有整数索引。所以首先你必须得到player_索引。如果我只传递整数作为输入,对于player 1=1,player 2=2,仍然不返回怎么办?如果你将player name作为输入,我的解决方案将有效。但是如果你想传递整数(index),那么检查@experience的解决方案。在dictionary(Players或exits)中,除非你知道键,否则你无法获得值。因为用户传递了玩家名,所以我们没有键(玩家索引),只有值(玩家名)。这就是为什么我要循环整个Players dict并与用户传递的player name匹配,如果匹配,那么我们就有player_索引。使用player_index,我们可以从您可以添加的值中获取值,如果我们将playername作为input@Karamzov如果有效,请投票并接受它!playername在什么意义上传递玩家的值是dict而不是key?@karamzov为什么你变得如此自私。上面的代码块按照你的问题所要求的那样工作。从长远来看,更改注释部分的要求对你没有帮助!我试图理解代码,这就是为什么我提出了另一个问题:如果我们将playername作为input@Karamzov如果有效,请投票并接受它!playername在什么意义上传递玩家的值是dict而不是key?@karamzov为什么你变得如此自私。上面的代码块按照你的问题所要求的那样工作。从长远来看,更改注释部分的要求对你没有帮助!我试图理解代码,因此我提出了另一个问题