如何通过循环提取嵌套列表中journey_time<600的活动数据
批量提取嵌套列表中journey_time小于600秒的客户活动数据
核心思路
遍历所有客户,对每个客户的活动序列逐一检查,筛选出journey_time小于600秒的活动项,同时保留对应的活动code。
Python 实现示例
假设你的数据结构是嵌套字典+列表的形式,以下代码可直接复用:
# 存储所有符合条件的活动 filtered_activities = [] # 遍历每个客户的活动数据 for customer in homepage1["customer_data"]["activity_list"]: # 获取当前客户的时间序列和活动码序列 time_sequence = customer["journey_time"] code_sequence = customer["code"] # 一一匹配时间和活动码,筛选符合条件的项 for journey_time, code in zip(time_sequence, code_sequence): if journey_time < 600: filtered_activities.append({ "code": code, "journey_time": journey_time # 若需要区分客户,可添加客户标识字段,比如"customer_id": customer.get("customer_id") })
分组保留客户维度的版本
如果需要按客户分组存储筛选结果(而非混存所有活动),可以用以下写法:
# 按客户分组存储筛选后的活动 grouped_filtered_data = [] for customer in homepage1["customer_data"]["activity_list"]: customer_valid_activities = [] time_sequence = customer["journey_time"] code_sequence = customer["code"] for journey_time, code in zip(time_sequence, code_sequence): if journey_time < 600: customer_valid_activities.append({ "code": code, "journey_time": journey_time }) # 只保留有有效活动的客户数据(可选,按需删除此判断) if customer_valid_activities: grouped_filtered_data.append(customer_valid_activities)
注意事项
- 确保每个客户的
journey_time和code序列长度一致,否则zip()会自动截断到较短序列的长度 - 如果使用其他编程语言(如JavaScript),核心逻辑完全一致:遍历客户列表→遍历活动序列→条件筛选→存储结果
内容的提问来源于stack exchange,提问作者marius89
相关产品推荐
相关产品推荐

