如何遍历嵌套字典Data,获取所有event_dict中的event_id值
获取嵌套字典中所有event_id的值
你可以通过两层遍历实现需求:先遍历外层字典的用户数据,再遍历每个用户的事件字典,提取event_id字段。以下是两种实现方式:
方式一:常规循环(可读性高)
# 初始化空列表存储所有event_id all_event_ids = [] # 遍历Data中的每个用户条目 for user_info in Data.values(): # 获取当前用户的事件字典 events = user_info['event_dict'] # 遍历每个事件,提取event_id for event_details in events.values(): all_event_ids.append(event_details['event_id']) # 输出结果 print(all_event_ids)
方式二:列表推导式(简洁高效)
如果追求代码简洁,可以用嵌套列表推导式一行完成:
all_event_ids = [event['event_id'] for user in Data.values() for event in user['event_dict'].values()] print(all_event_ids)
两种方式最终都会输出所有event_id的集合:['01', 'T', 's', 'p', 'abc', 'def', 'ghi', 'jkl']
扩展:保留用户与事件的对应关系
如果需要区分每个用户对应的event_id,可以修改代码记录用户信息:
user_event_map = {} for user_idx, user_info in Data.items(): user_event_map[user_info['name']] = [event['event_id'] for event in user_info['event_dict'].values()] print(user_event_map)
输出结果:
{'John': ['01', 'T', 's', 'p'], 'Henry': ['abc', 'def', 'ghi', 'jkl']}
内容的提问来源于stack exchange,提问作者Trishna
相关产品推荐
相关产品推荐

