如何测试一个列表是否包含另一个列表(即它是连续的子序列)。假设有一个名为contains的函数:contains([1,2], [-1, 0, 1, 2]) # Returns [2, 3] (contains returns [start, end])contains([1,3], [-1, 0, 1, 2]) # Returns Falsecontains([1, 2], [[1, 2], 3]) # Returns Falsecontains([[1, 2]], [[1, 2], 3]) # Returns [0, 0]编辑:contains([2, 1], [-1, 0, 1, 2]) # Returns Falsecontains([-1, 1, 2], [-1, 0, 1, 2]) # Returns Falsecontains([0, 1, 2], [-1, 0, 1, 2]) # Returns [1, 3]
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
如果所有项目都是唯一的,则可以使用集合。
>>> items = set([-1, 0, 1, 2])
>>> set([1, 2]).issubset(items)
True
>>> set([1, 3]).issubset(items)
False
月关宝盒
TA贡献1772条经验 获得超5个赞
有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)。
添加回答
举报
0/150
提交
取消