В основном для задания мне нужно определить, является ли список подсписком другого списка, на который я видел ответ в этом посте Проверка, является ли список подсписком , однако существуют некоторые особые требования, которые будет объяснено в примерах, что werent ответил в этом посте. Я также видел этот пост Как проверить, находится ли список в другом списке с таким же порядком python, что также не помогло определить особые требования.
Пример 1:
list1 = 'a,q,b,q,q,q,q,q,q,c'
sublist = 'a,b,c'
output -> True
Объяснение: Теперь я знаю, что это не обязательно подсписок list1, но a, b и c все присутствуют в list1, в том же порядке, что и переменная подсписка, только q разделяет их, который я могу игнорировать, потому что q не находится в подсписке, поэтому это выдает true.
Example2:
list1 = 'b,q,q,q,q,a,q,c'
sublist = 'a,b,c'
output -> False
Объяснение: Хотя этот список содержит a, b и c как и в другом примере, он не в порядке, следовательно, почему он будет ложным
Example3:
list1 = 'a,b,b,q,c'
sublist = 'a,b,c'
output -> False
Example4:
list1 = 'a,b,b,a,b,q,c'
sublist = 'a,b,c'
output -> True
Объяснение: В начале из списка, у нас есть a, b, b, который в приведенном выше объяснении, которое я указал, был ложным, однако после этой части мы имеем правильный порядок a, b, c с aq, разделяющим b и c
Вот мой код. Кажется, что проблема, которую я не могу найти, обнаруживается в одном скрытом тестовом примере, через который мне нужно пройти, я не вижу ввод или вывод, что затрудняет отладку этого. Я пытался запустить множество собственных тестов, но я не могу найти то, что мне здесь не хватает. Мне просто интересно, может ли кто-нибудь выяснить, что я забыл принять во внимание при запуске этого.
sublist = 'a,b,c'.split(',')
l1 = 'a,q,b,a,q,q,q,q,q,q,q,q,q,c'.split(',')
item_order = []
for item in l1:
#Check if I have found a sublist
if item_order == sublist:
break
#If item is in sublist, but hasnt been seen yet
elif item in sublist and item not in item_order:
item_order.append(item)
print('adding item', item_order)
#If item has been seen and is in sublist
elif item in item_order:
#Reset and add duplicated item
item_order = []
item_order.append(item)
print('found duplicate, resetting list', item_order)
if item_order == sublist: print("true")
else: print("false")