как проверить, входит ли список S в L (является ли “подсписком”)
например S= - входит, а S= и S= - не входят.
у меня 2 варианта:
str(S)[1:-1] in str(L)[1:-1]
и
S == L[ L.index(S[0]) : L.index(S[-1])+1 ]
str(S)[1:-1] in str(L)[1:-1]
и
S == L[ L.index(S[0]) : L.index(S[-1])+1 ]
len_S = len(S)
found = False;
for i in range(len(L)):
if L[i:i+len_S] == S:
found = True
break
alexx11а нукось так ?..
Первый вариант не прокатит, так как L= (типа входит),
',%s,'% str(S)[1:-1] in ',%s,'% str(L)[1:-1]
def is_sublist(seq, sub_seq):
""" Return True if sub_seq is part of seq.
>>> is_sublist([1, 2, 3], [1, 2])
True
>>> is_sublist([1, 2, 3], [2, 1])
False
"""
seq_string = ''.join((str(item) for item in seq))
sub_seq_string = ''.join((str(item) for item in sub_seq))
return sub_seq_string in seq_string
Ferromandef is_sublist(seq, sub_seq):
""" Return True if sub_seq is part of seq.
>>> is_sublist([1, 2, 3], [1, 2])
True
>>> is_sublist([1, 2, 3], [2, 1])
False
"""
seq_string = ''.join((str(item) for item in seq))
sub_seq_string = ''.join((str(item) for item in sub_seq))
return sub_seq_string in seq_string
>>> is_sublist(['эту','функцию', 'нельзя' ,'употреблять'], ['бля'])
True
appetitoЧтоб заработало, немного надо изменить:alexx11а нукось так ?..
Первый вариант не прокатит, так как L= (типа входит),',%s,'% str(S)[1:-1] in ',%s,'% str(L)[1:-1]
',%s,'% str(b)[1:-1].replace(' ',',') in ',%s,'% str(a)[1:-1].replace(' ',',')
>>> f = lambda x: ''.join('(%i)'%i for i in x)
>>> f([2,3]) in f([1,2,3,4])
True
>>> f([1,3]) in f([1,2,3,4])
False
alexx11Вообще то там должен быть список целых чисел, а не строк. Я отредактировал и подчеркнул это в примере.
Isem Зачем так сложно то? Мржно ‘,%s,’ заменить на ‘,%s ,’
Второй пример не рабочий: f() in f() == True
f = lambda x:'(%s)' % ')('.join(map(repr,x))
>>> f(['b', 3]) in f(['a', 'b', 3])
True