![](/img/trans.png)
[英]How to Check whether a element exists in a python dictionary value which is a list?
[英]Check if list as value(with atleast one element) exists in dictionary and return it
我有以下字典:
dict1 = {'Diacto Group': {'id': 7547,
'type': 'user',
'name': 'Diacto Group',
'filters': [{'column': 'Core Area',
'values': ['Missiles & Aviation Technology'],
'operator': 'EQUALS',
'not': False}],
'users': [],
'virtualUsers': [],
'groups': [360305499]},
'Diacto People': {'id': 7548,
'type': 'user',
'name': 'Diacto People',
'filters': [{'column': 'Core Area',
'values': ['Aircraft Company', 'Aviation Technology'],
'operator': 'EQUALS',
'not': False}],
'users': [326197441, 1293859642],
'virtualUsers': [],
'groups': []},
}
基本上我想从“用户”或“组”中提取其中一个列表,如果它们的列表包含至少一个值。 我希望最终的 output 看起来像这样:
l1 = [# Extracted list as value from 'group' key from Diacto Group key as users key was blank
# list.
[360305499],
# Extracted list as value from 'users' key from Diacto People key as groups key was
# blank list.
[326197441, 1293859642]
]
如果可能的话,列表理解会更可取。 感谢您为此付出的努力和时间。
只要“用户”或“组”不为空,我能想到的最简单的理解:
[v['users']+v['groups'] for v in dict1.values()]
我认为这可能与列表理解有关,但极难理解。
这将是我的方法:
l1 = []
for k in dict1:
if len(dict1[k]['users']) > 0:
l1.append(dict1[k]['users'])
if len(dict1[k]['groups']) > 0:
l1.append(dict1[k]['groups'])
print(l1)
使用列表理解并过滤掉“用户”和“组”都为空的情况:
l1 = [v["users"]+v["groups"] for _, v in dict1.items() if v["users"]+v["groups"]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.