You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于两个数组生成复杂字典:检查元素存在性构造df3

解决方案:生成目标结构df3

我来帮你搞定这个需求!要得到你想要的df3结构,我们可以通过嵌套循环来实现,逻辑很直观,下面是具体的Python代码和解释:

df1 = ['c_1', 'd_1', 'f_1', 'h_1', 'i_1', 'n_1', 'v_1', 'm_1']
df2 = [['lia', 'f_1', 'n_1', 'v_1'], ['eli', 'f_1', 'n_1', 'v_1', 'm_1']]

df3 = []
# 先遍历df1的每个元素,再处理df2里的每个用户
for item in df1:
    for sublist in df2:
        # 提取子列表里的用户名(比如lia、eli)
        user_name = sublist[0]
        # 提取该用户对应的元素集合(子列表从第2个元素开始)
        user_elements = sublist[1:]
        # 判断当前df1元素是否在用户的元素集合里,存在记1,否则记0
        exists = 1 if item in user_elements else 0
        # 把(元素,{用户名: 存在标记})的元组加入df3
        df3.append( (item, {user_name: exists}) )

# 输出结果看看
print(df3)

代码逻辑拆解:

  • 循环顺序匹配你的示例:先遍历df1的每个元素,再对每个元素遍历df2的子列表,这样生成的df3顺序就和你给出的示例完全一致——先处理f_1对应lia,再n_1对应lia,接着v_1对应lia,然后是那些不存在的元素对应lia,之后再处理所有元素对应eli的情况。
  • 提取用户和元素集合:每个df2的子列表第一个元素是用户名,后面的是该用户关联的元素,我们把这两部分分开处理。
  • 存在性判断:用简单的in操作符判断元素是否在用户的集合里,生成1或0的标记,再组装成你需要的字典格式。

运行这段代码后,你就能得到完全符合需求的df3结构啦。如果需要调整顺序或者扩展功能(比如处理更多子列表),这个逻辑也很容易修改。

内容的提问来源于stack exchange,提问作者sara jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:20:22