如何解决Python嵌套字典按特定子项访问
我想知道以下词典的哪个键属于特定的子键:
dic = {'key1':{'subkey1':'entry1','name':'entry2'},'key2':{'subkey3':'entry3','name':'entry4'},'key3':{'subkey5':'entry5','name':'entry6'}}
例如:哪个键属于entry4?
for i in dic.keys():
if dic[i]['name'] == 'entry4':
print(i)
break
答案是:key2
有没有更简单/更好的方法呢?
解决方法
尝试一下
dic = {'key1':{'subkey1':'entry1','name':'entry2'},'key2':{'subkey3':'entry3','name':'entry4'},'key3':{'subkey5':'entry5','name':'entry6'}}
print(''.join(x for x,y in dic.items() if 'entry4' in y.values()))
输出
key2
,
正如@Samwise在评论中所建议的:
[key for key,subdic in dic.items() if 'entry4' in subdic.values()]
出局:
['key2']
注意:它返回一个列表,因为可能有多个匹配项。
如果您只关心第一个比赛,或者确定没有重复项,可以使用:
matching_keys = [key for key,subdic in dic.items() if 'entry4' in subdic.values()]
matching_keys[0]
输出:
'key2'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。