def list(small,big):
for i in range(len(big)):
if small[i]!=big[i]:
break
else:
return False
嗨,我是新来的蟒蛇。我想查找列表中的数字是否在另一个列表中。所以[7,8,4]和[8,5,1]是[7,8,5,4,1]的子序列,应该返回True
,但是[7,8,8]和[7,1,8 ]不是,应该返回False
。在另一个列表中列出
def list(small,big):
for i in range(len(big)):
if small[i]!=big[i]:
break
else:
return False
嗨,我是新来的蟒蛇。我想查找列表中的数字是否在另一个列表中。所以[7,8,4]和[8,5,1]是[7,8,5,4,1]的子序列,应该返回True
,但是[7,8,8]和[7,1,8 ]不是,应该返回False
。在另一个列表中列出
像这样的工作 既然你是一个新手,建筑物上的功能的想法
def lister(small,big):
for i in range(len(small)):
if small[i] not in big:
return False
return True
print(lister([1,2,3],[1,2,3,4,5]))
定义功能lister
因为名单已经是一个内置的功能在Python
编辑:找到一个子序列,它相信它可以做到如下:
def lister(small,big):
for i in range(len(small)):
if small[i] not in big:
return False
if " ".join([str(x) for x in small]) in str(" ".join([str(y) for y in big])):
return True
else:
return False
print(lister([3,5],[1,2,3,4,5]))
这是一个递归方法。它适用于所有的例子。基本上,list1是list2的子序列,如果A)list1的第一个元素在list2中并且B)list1的其余部分是list2的其余部分的子序列。
def subsequence(list1, list2):
if not list1:
return True
head, *tail = list1
try:
index = list2.index(head)
return subsequence(tail, list2[index+1:])
except ValueError:
return False
这里是另一种选择:
def IsListInList(listA, listB):
res = False
for index,val in enumerate(listA):
if (val in listB):
listB = listB[listB.index(val)+1:]
res = True
else:
res = False
break
return res
你的问题不明确。你能否提供一个想要的输入和输出的例子? – manvi77
[测试一个列表是否包含另一个Python列表]可能的重复(http://stackoverflow.com/questions/3847386/testing-if-a-list-contains-another-list-with-python) –
这不是列表中的子序列的测试。例如,8,5,1不会出现在7,8,5,4,1中。必须考虑'4'或任何其他数字或数字组。 –