获取保存在变量中的字典值的键?

时间:2021-01-19 15:27:03

标签: python python-3.x dictionary key

import random
from words import word_dict

def get_word():
    word = random.choice(list(word_dict.values()))
    return word.upper()

所以我正在导入这个字典并从中获取一个随机值并将其保存在一个变量中。现在,如果我想获得相同随机值的密钥,我将如何获得密钥?任何帮助?提前致谢。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

val = get_word()
key = next(k for k, v in word_dict.items() if v.upper() == val)

当然,不能保证您获得哪个键,因为多个键可能具有相同的值。如果你必须反复进行这种反向查找,你最好构建一个合适的数据结构:

rev = {v.upper(): k for k, v in word_dict.items()}

key1 = rev[val1]
key2 = rev[val2]

然而,最聪明的做法是先获取一个随机密钥,然后根据随机密钥进行查找。

答案 1 :(得分:0)

当您随机选择时,为什么不直接获取密钥和值:

import random
from words import word_dict

def get_word():
    key,word = random.sample(word_dict.items(),1)[0]
    return word.upper(),key

请注意,我将 choice() 更改为 sample() 是为了避免创建包含字典中所有条目的临时列表(我怀疑它非常大)。