2016-04-14 8 views
0

Например, у меня есть два списка x и y в Python. Предположим, что x = [0,1,2,3,4,5,6,7] и y = [3,4,5], ясно, что y является подрешетом x, а положение подвыражения y в x равно 3. Другими словами, я пытаюсь получить функцию, которая судит, является ли список подписчиком в другом списке. Если это так, я хотел бы также выяснить позицию подписок.Найти позицию подписок в списке в python

Я не знаю, есть ли какие-либо готовые функции, которые я могу использовать. Если нет, есть ли у кого-нибудь представление о том, как я могу достичь этого, используя какой-то эффективный метод.

Спасибо за любую помощь заранее!

ответ

1
x = [0,1,2,3,4,5,6,7] 
y = [3,4,5] 

occ = [i for i, a in enumerate(x) if a == y[0]] 

for b in occ: 
     if x[b:b+len(y)] == y: 
      print 'YES-- SUBLIST at : ', b 
      break 
     if len(occ)-1 == occ.index(b): 
      print 'NO SUBLIST' 
      break 
+0

Большое спасибо! Не могли бы вы рассказать мне, почему в вашем методе есть «проход» (строка 11). Я смущен, нужно ли это. –

+0

спасибо за исправление. и да, это не было необходимо. – AceLearn

+0

Как быстро вы ответите! Спасибо за вашу помощь :) –