【发布时间】:2020-03-25 21:33:46
【问题描述】:
def sublist(slist, blist):
m = 0
is_a_sublist = False
for n in range(0, len(blist)):
while (n < len(blist) and m < len(blist)) and is_a_sublist == False:
spliced_list = blist[n:m]
if spliced_list == slist:
is_a_sublist = True
else:
m += 1
return is_a_sublist
def main():
test_list = ["a",9,1,3.14,2]
original_list = ["a",1,"a",9,1,3.14,2]
is_a_sublist = sublist(test_list,original_list)
if is_a_sublist == True:
print("It is a sublist!")
else:
print("It ain't a sublist!")
main()
我上面写的代码是检查给定列表是否是更大列表的“子列表”。因此,如果一个大列表是 [3,3,10,4,9],而给定列表是 [3,10,4],那么它是一个子列表,因此它必须返回 True。但是我的代码有什么问题?当我运行它时,输出是“它不是子列表”,即使它是(函数返回 False)。我只想使用循环,没有内置函数。
【问题讨论】:
-
大多数答案都是使用复杂的函数,只是想依赖循环。
标签: python loops boolean-logic