Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否使用同一密钥访问另一个词典?_Python_Python 3.x_Dictionary - Fatal编程技术网

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为什么你变得如此自私。上面的代码块按照你的问题所要求的那样工作。从长远来看,更改注释部分的要求对你没有帮助!我试图理解代码,因此我提出了另一个问题