gpt4 book ai didi

Python3 - 如何在字典列表中按值搜索键?

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:38 24 4
gpt4 key购买 nike

我有一个字典列表,格式如下:

dict = [{
"users": {
"user_a": [{
"email": [ "aaa1@email.com", "aaa2@email.com" ]
}],
"user_b": [{
"email": [ "bbb1@email.com" ]
}]
},
"class": "class_A"
},
{
"users": {
"user_d": [{
"email": [ "ddd1@email.com" ]
}],
"user_c": [{
"email": [ "aaa1@email.com", "ccc@email.com" ]
}]
},
"class": "class_B"
}]

我想找到值包含电子邮件地址 'aaa1@email.com' 的键(用户名)作为示例,所以结果将是:

class_A, user_a
class_B, user_c

我是这样尝试的:

for key, value in enumerate(dict):
if key =="users":
if value in "aaa1":

但我迷路了。如何通过值获取键?

感谢您的帮助。

最佳答案

您可以使用列表理解:

data = [{'users': {'user_a': [{'email': ['aaa1@email.com', 'aaa2@email.com']}], 'user_b': [{'email': ['bbb1@email.com']}]}, 'class': 'class_A'}, {'users': {'user_d': [{'email': ['ddd1@email.com']}], 'user_c': [{'email': ['aaa1@email.com', 'ccc@email.com']}]}, 'class': 'class_B'}]
email = "aaa1@email.com"
result = [[i['class'], j] for i in data for j, k in i['users'].items() if any(email in x['email'] for x in k)]

输出:

[['class_A', 'user_a'], ['class_B', 'user_c']]

关于Python3 - 如何在字典列表中按值搜索键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59291792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com