python求列表交集_python基础笔记

python求列表交集_python基础笔记在 Python 中 求两个列表的交集可以通过以下几种方法实现 1 使用列表推导式和 in 关键字 pythonb1 1 2 3 b2 2 3 4 b3 val for val in b1 if val in b2 print b3 输出 2 3 2 将列表转换为集合 使用集合的交集操作符 amp 然后再转换回列表类型 pythonb1

在Python中,求两个列表的交集可以通过以下几种方法实现:

1. 使用列表推导式和`in`关键字:

 b1 = [1, 2, 3] b2 = [2, 3, 4] b3 = [val for val in b1 if val in b2] print(b3) 输出:[2, 3] 

2. 将列表转换为集合,使用集合的交集操作符`&`,然后再转换回列表类型:

 b1 = [1, 2, 3] b2 = [2, 3, 4] b3 = list(set(b1) & set(b2)) print(b3) 输出:[2, 3] 

3. 对于包含嵌套列表的情况,可以使用`filter`函数和`lambda`表达式:

 b1 = [1, 2, 3] b2 = [[2, 4], [3, 5]] b3 = [filter(lambda x: x in b1, sublist) for sublist in b2] print(b3) 输出:[, ] 

4. 使用`set`的`intersection`方法:

 a = [5, 6, 7, 8, 9] b = [4, 6, 7, 8, 10] print(set(a).intersection(set(b))) 输出:{6, 7, 8} 

5. 使用`Counter`类从`collections`模块:

 from collections import Counter a = [5, 6, 7, 8, 9] b = [4, 6, 7, 8, 10] counter_a = Counter(a) counter_b = Counter(b) intersection = counter_a & counter_b print(intersection) 输出:Counter({6: 1, 7: 1, 8: 1}) 

以上方法都可以用来求两个或多个列表的交集。选择哪种方法取决于你的具体需求和列表中数据的类型

编程小号
上一篇 2025-01-05 12:51
下一篇 2025-01-05 12:43

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/140110.html