gpt4 book ai didi

python - 检查列表中的子列表

转载 作者:行者123 更新时间:2023-11-28 20:46:58 25 4
gpt4 key购买 nike

问题是:你要编写一个名为 isSublist() 的函数,它接受两个参数 (list, sublist) 并返回 1 如果 sublist 是 list 的子列表,否则为 0。

所以我有我的代码,但是当子列表不在列表中时我得到 True。请问有什么解决这个问题的建议吗?

 def isSublist(list, sublist):
for i in range(len(list)-(len(sublist))+1):
return True
if sublist==list[i:i+(len(sublist))]:
return False

示例输入:

list= (0,1,2,3,4,5,6,7,8,9)
isSublist(list, [1,2,3])
output:
True

最佳答案

您可以通过获取子列表大小的所有切片并比较相等性来分解它:

def n_slices(n, list_):
for i in xrange(len(list_) + 1 - n):
yield list_[i:i+n]

def isSublist(list_, sub_list):
for slice_ in n_slices(len(sub_list), list_):
if slice_ == sub_list:
return True
return False

涵盖订购问题。根据定义,列表是有序的。如果我们想忽略排序,你可以做集合:

def isSubset(list_, sub_list):
return set(sub_list) <= set(list_)

如果我们需要覆盖重复元素并忽略顺序,那么您现在就处于多重集领域:

def isSubset(list_, sub_list):
for item in sub_list:
if sub_list.count(item) > list_.count(item):
return False
return True

关于python - 检查列表中的子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19990861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com