如何在不同大小的列表中查找与目标列表完全匹配的子列表
解决方案
在Python中,列表的==运算符会自动完成逐元素的完全匹配检查(包括元素顺序和内容),正好满足你的需求。以下是几种实现方式:
方式1:基础循环遍历(找到第一个匹配项后停止)
l1 = [1, 2, 3, 4, 5] l2 = [[1,1,1,1,1], [2,2,2,2,2], [1,2,3,4,5]] target_item = None for item in l2: if item == l1: target_item = item break print(target_item) # 输出: [1, 2, 3, 4, 5]
方式2:列表推导式(获取所有匹配项)
如果待检索列表中可能存在多个和目标列表完全匹配的元素,用列表推导式可以一次性收集所有结果:
l1 = [1, 2, 3, 4, 5] l2 = [[1,1,1,1,1], [2,2,2,2,2], [1,2,3,4,5], [1,2,3,4,5]] all_matches = [item for item in l2 if item == l1] print(all_matches) # 输出: [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
方式3:用next()快速获取第一个匹配项
这种方式更简洁,还可以指定无匹配时的默认返回值:
l1 = [1, 2, 3, 4, 5] l2 = [[1,1,1,1,1], [2,2,2,2,2], [1,2,3,4,5]] first_match = next((item for item in l2 if item == l1), None) print(first_match) # 输出: [1, 2, 3, 4, 5]
内容的提问来源于stack exchange,提问作者Francesco Tattoli
相关产品推荐
相关产品推荐

