python - 在列表中查找不在其他列表中的值
问题描述
让我们来看看这些示例列表:
L_main = [1,2,3,4,5,6,7,8,9]
L1 = [1,7,3,12]
L2 = [0,2,51,5,9]
L3 = [3,2,8]
我想创建一个列表,其中包含 L_main 的值,这些值既不在 L1 中,也不在 L2 中,也不在 L3 中。下面的代码完成了这项工作,但是对于大列表来说真的很慢:
[i for i in L_main if i not in L1 and i not in L2 and i not in L3]
你知道请一个更有效的方法吗?
预期结果 :
[4,6]
解决方案
您可以使用串联在一起的列表之间的set
差异L_main
和其余列表:
>>> list(set(L_main).difference(L1+L2+L3))
[4, 6]
推荐阅读
- svg - 将 chart.js 绘制为 svg
- r - 如何使用端口号从 R 中杀死 Windows 应用程序?
- debian - 在 debian 测试中安装 virtualbox 时出现 404 错误
- php - 尝试在 PostgreSQL 中使用 UTF-8 编码和 pt-BR.UTF-8 排序规则创建数据库时出错
- c# - 在字典中查找值
> - python - 加密/解密凯撒密码到文件文本
- symfony - 试图调用类“FOS\ElasticaBundle\Repository”的名为“search”的未定义方法
- redis - Redis 对于相同数量的键超时消耗更多内存
- javascript - 将大型集合保存到存储时,Redux 似乎很慢
- php - MySQL + PHP:~500kb JSON 文件 - 将数据加载为表和字段 VS 作为单个序列化变量