使用相同的键访问另一本词典?

时间:2018-07-19 05:52:38

标签: 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},
         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)

上面的代码没有从第二个字典返回值,如何在不使用任何方法和函数的情况下解决此问题?

2 个答案:

答案 0 :(得分:1)

首先,您需要从“玩家”字典中获取玩家索引,然后才能从“退出”字典中获取选项

/* encode 1 second of video */
for (i = 0; i < 25; i++) {
    fflush(stdout);
    /* make sure the frame data is writable */
    ret = av_frame_make_writable(frame);
    if (ret < 0)
        exit(1);
    /* prepare a dummy image */
    /* Y */
    for (y = 0; y < c->height; y++) {
        for (x = 0; x < c->width; x++) {
            frame->data[0][y * frame->linesize[0] + x] = x + y + i * 3;
        }
    }
    /* Cb and Cr */
    for (y = 0; y < c->height/2; y++) {
        for (x = 0; x < c->width/2; x++) {
            frame->data[1][y * frame->linesize[1] + x] = 128 + y + i * 2;
            frame->data[2][y * frame->linesize[2] + x] = 64 + x + i * 5;
        }
    }
    frame->pts = I;

    AVFrameSideData *angle = av_frame_new_side_data (frame, AV_FRAME_DATA_GOP_TIMECODE, sizeof(int32_t));
    if(!angle)
        return AVERROR(ENOMEM);
    unint8_t a = i; 
    angle->data = &a;

    frame->side_data = angle
    /* encode the image */
    encode(c, frame, pkt, f);
}

答案 1 :(得分:1)

这是您的解决方案

direction = input("Available Players are " + avabilablePlayer + " ").upper()
if int(direction) in exits.keys():
    dict_key=exits.get(int(direction))
    print(dict_key)