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

Python实现比对两个列表生成值为0或1的二进制字典

双列表生成二进制值字典实现方案

首先修正你给出的列表定义里的语法错误:原list2中'ABC缺少闭合单引号,正确的初始列表定义如下:

list1 = ['ABC', 'DBA', 'CBA', 'RBA', 'DCA', 'RMA']
list2 = ['ABC', 'DBA', 'RMA']

推荐实现方式

优先把用于匹配的list2转为集合,集合的成员判断时间复杂度为O(1),比直接在列表中判断(时间复杂度O(n))性能更好,尤其适合数据量较大的场景,再通过字典推导式就能直接生成目标字典:

match_set = set(list2)
result = {key: 1 if key in match_set else 0 for key in list1}

运行后result的输出完全匹配预期:

{'ABC': 1, 'DBA': 1, 'CBA': 0, 'RBA': 0, 'DCA': 0, 'RMA': 1}

精简写法

如果你的数据量非常小,也可以省去转集合的步骤,利用Python中布尔值True/False和整数1/0的等价性,直接用int()做类型转换得到二进制值,写法更简短:

result = {key: int(key in list2) for key in list1}

运行效果和上述写法完全一致。


内容的提问来源于stack exchange,提问作者Noorulain Islam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 22:30:54