使用Python测试列表是否包含另一个列表

如何测试一个列表是否包含另一个列表(即它是连续的子序列)。假设有一个名为contains的函数:


contains([1,2], [-1, 0, 1, 2]) # Returns [2, 3] (contains returns [start, end])

contains([1,3], [-1, 0, 1, 2]) # Returns False

contains([1, 2], [[1, 2], 3]) # Returns False

contains([[1, 2]], [[1, 2], 3]) # Returns [0, 0]

编辑:


contains([2, 1], [-1, 0, 1, 2]) # Returns False

contains([-1, 1, 2], [-1, 0, 1, 2]) # Returns False

contains([0, 1, 2], [-1, 0, 1, 2]) # Returns [1, 3]


杨魅力
浏览 1401回答 3
3回答

胡子哥哥

如果所有项目都是唯一的,则可以使用集合。>>> items = set([-1, 0, 1, 2])>>> set([1, 2]).issubset(items)True>>> set([1, 3]).issubset(items)False

月关宝盒

有all()and any()函数可以做到这一点。检查list1是否包含list2中的所有元素result = all(elem in list1 for elem in list2)检查list1是否在list2中包含ANY元素result = any(elem in list1 for elem in list2)变量结果将为布尔值(TRUE / FALSE)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python