python - 检查列表与列表推导重叠
问题描述
我在 python 中有一个脚本,它生成 2 个不同大小的随机列表,并返回第三个列表,该列表仅包含使用列表推导的 2 个列表之间共有的元素(没有重复项)
例子:
a = [3, 8, 9, 6, 5, 3, 7, 8, 2, 10]
b = [7, 13, 20, 12, 12, 2, 6, 1, 2, 8, 19, 3, 15, 16, 14, 22, 22, 4, 9, 15, 8, 13]
我的结果列表是
c = [7, 2, 6, 2, 8, 3, 9, 8]
但应该是
c = [7, 6, 2, 8, 3, 9]
这是我所做的:
c = [i for i in max(a, b) if i in min(a, b) and i not in c]
提前致谢!
解决方案
您可以通过以下方式使用集合:
c = list(set(a).intersection(set(b)))
这会给你:
[2, 3, 6, 7, 8, 9]
这是有效的,因为set
项目是无序的、不可更改的,并且不允许重复值。intersection
将其与您将获得结果的方法相结合。
推荐阅读
- json - RangeError(索引):无效值:有效值范围为空:0 Flutter中的嵌套Json
- in-app-purchase - 找不到服务器到服务器通知的定价和限制
- python - Python 函数总是输出 NonType
- .net - 无法创建 SSL/TLS 安全通道。尝试从互联网上抓取文件时
- sql - 连接常见和不常见行所需的 MySQL 查询帮助
- http - 将子域重定向到除特定 URL 之外的主域 - Nginx
- javascript - 当我单击时 clear() 函数和 updateDisplay() 函数不起作用
- python - keras tensorflow模型的重现性
- excel - Excel VBA中XY图表的数据标签
- javascript - 我的子菜单项有时会卡在打开状态?