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


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

所以我正在导入这个字典,并从中获得一个随机值,并将其保存在一个变量中。现在如果我想要得到那个随机值的键,我该怎么得到这个键呢?任何帮助吗?提前谢谢。

你可以这样做:

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]

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

当您随机选择时,为什么不直接获得键和值呢?

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()是为了避免创建包含字典中所有条目的临时列表(我怀疑该列表相当大)。

相关内容

  • 没有找到相关文章

最新更新