为了账号安全,请及时绑定邮箱和手机立即绑定

我可以从它的值中获取 python 字典的索引吗?

我可以从它的值中获取 python 字典的索引吗?

料青山看我应如是 2022-07-12 15:50:36
dict = {  a: [(21, ['one', 'two', 'three'])]  b: [(21, ['four', 'five'])]}我想开发一个函数,当我将“三”作为参数传递时返回一个。我怎样才能做到这一点?
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

假设您已保存 中的所有值,请dict说:


dict = {

 a: [(21, ['one', 'two', 'three'])]

 b: [(21, ['four', 'five'])]}

然后,要访问给定值的键,您需要反转它们的关系(这将加快查找速度以换取更多内存):


lookup = {}

for key in dict.keys():

    for value in dict[key][0][1]: #this is the list inside the tuple inside the list

        lookup[value] = key

所以,当你在寻找所需值的键时,你可以去:


print('out:', lookup['three'])

这将输出:


out: a


查看完整回答
反对 回复 2022-07-12
?
浮云间

TA贡献1829条经验 获得超4个赞

您可以通过迭代字典中的每个项目来做到这一点,但是在大型数据集中它可能效率低下。


def get_key(data, query):

    for key, value in data.items():

        if query in value[0][1]:

            return key

    return 'Not Found'

get_key(dictonary, word)然后,即使您的查找未能找到匹配项,您也可以调用您的函数并返回结果。


# Note i changed the name of the dictionary to dicton, as dict shouldn't be used as a variable name

print(get_key(dicton, 'three'))

print(get_key(dicton, 'seven'))

print(get_key(dicton, 'four'))


#a

#Not Found

#b


查看完整回答
反对 回复 2022-07-12
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信