访问字典python中列表中的项

2024-05-14 14:13:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典,里面有与列表相关联的键。

mydict = {'fruits': ['banana', 'apple', 'orange'],
         'vegetables': ['pepper', 'carrot'], 
         'cheese': ['swiss', 'cheddar', 'brie']}

我要做的是使用if语句,如果我在字典中的任何列表中搜索项及其项,它将返回键。这就是我所尝试的:

item = cheddar
if item in mydict.values():
    print key 

但它什么也做不了,输出应该是:

cheese

这看起来很简单,但我就是想不通。任何帮助都很棒。


Tags: apple列表if字典itemmydictbananaorange
3条回答
mydict = {'fruits': ['banana', 'apple', 'orange'],
     'vegetables': ['pepper', 'carrot'], 
     'cheese': ['swiss', 'cheddar', 'brie']}

item = "cheddar"

for key, values in mydict.iteritems():
    if item in values:
        print key

如果要进行大量此类搜索,我认为可以为原始mydict创建反向索引,以加快查询速度:

reverse_index = {}

for k, values in mydict.iteritems():
     for v in values:
         reverse_index[v] = k

print reverse_index.get("cheddar")
print reverse_index.get("banana")

这样,您不必每次都遍历values列表来查找项目。

mydict = {'fruits': ['banana', 'apple', 'orange'],
     'vegetables': ['pepper', 'carrot'], 
     'cheese': ['swiss', 'cheddar', 'brie']}

item = "cheddar"
if item in mydict['cheese']:
    print ("true")

这是可行的,但是你必须参考字典里的钥匙,比如奶酪、蔬菜等,而不是因为你做字典的方式,希望这对你有帮助!

您必须使用for,一个简单的if不足以检查一组未知的列表:

for key in mydict.keys():
    if item in mydict[key]:
        print key

没有显式for语句的方法可能如下:

foundItems = (key for key, vals in mydict.items() if item in vals)

它返回与item相关联的所有键。但在内部,仍有某种迭代在进行。

相关问题 更多 >

    热门问题