如何从python中的字典中的给定名称获取密钥

时间:2011-04-03 03:02:52

标签: list function dictionary key tuples

我有一个名为

anime_dict
的变量,其中包含对象列表的字典,如下所示。
{'JI2212': ('Inu Yasha', [('year', 1992), ('rating', 3)]), 'EH389J': (Naruto', [('year', 1994), ('rating', 4), ('readers', 3424322)]), 'PPP67': ('Fruits Basket', [('Year', 1999), ('rating', 5), ('readers', 434232), ('chap', 40)])}

所以dict的关键是第1部分(Inu Yasha的'JI2212'),第2部分是名称,最后部分包含部分列表。
我想创建2个函数,第一个从给定名称获取密钥,第二个从给定名称获取部分 功能将是......

get_key(name)
and get_parts(name)


例如

>>>get_key('Fruits Basket')
'PPP67'
and
>>>get_parts('Inu Yasha')
[('year', 1992), ('rating', 3)]

4 个答案:

答案 0 :(得分:1)

技术上可能,但我不建议您这样做,因为效率不高,地图旨在使用键获取值。在您的情况下,我认为最好从以下方面恢复您的数据:

{'JI2212': ('Inu Yasha', [('year', 1992), ('rating', 3)])}

{'Inu Yasha': ('JI2212', [('year', 1992), ('rating', 3)])}

然后很容易实现你的目标。

答案 1 :(得分:0)

keysvalues方法。使用这些,不要逐个输入,它会非常慢,因为按值搜索键是线性的。

答案 2 :(得分:0)

你应该让你的钥匙成为动漫名字,它会让生活变得更轻松。

例如,现在插入的字典如下:

anime_dict[id] = (name,...)

更好的方法是:

anime_dict[name] = (id,...)

除非您有特定原因,否则密钥是id,这种方式通常更容易理解和使用。

答案 3 :(得分:0)

如果您只想将原始字典转换为新字典,可以运行以下命令:

old_dict = {'JI2212': ('Inu Yasha', [('year', 1992), ('rating', 3)]), 'EH389J': ('Naruto', [('year', 1994), ('rating', 4), ('readers', 3424322)]), 'PPP67': ('Fruits Basket', [('Year', 1999), ('rating', 5), ('readers', 434232), ('chap', 40)])}

new_dict = {}
for key in old_dict.keys(): 
    name = old_dict[key][0]
    data = old_dict[key][1:]
    new_dict[name]=(key, data)

希望它有所帮助!