Python

2016-04-14 11 views
0

'daki bir listede alt liste konumunu bulma Örneğin, Python'da iki tane x ve y listesi var. x = [0,1,2,3,4,5,6,7] ve y = [3,4,5] kabul edildiğinde, y'nin x'in bir alt listesi olduğu ve x'de alt liste y'nin konumunun 3 olduğu açıktır. Başka bir deyişle, bir listenin başka bir listede bir alt liste olup olmadığını yargılayan bir işlev almaya çalışıyorum. Eğer öyleyse, alt listenin konumunu da öğrenmek istiyorum.Python

Kullanabileceğim herhangi bir hazır fonksiyonun olup olmadığını bilmiyorum. Değilse, herhangi bir etkili yöntem kullanarak bunu nasıl başarabileceğime dair bir fikriniz var mı?

Yardımlarınız için şimdiden teşekkür ederiz!

cevap

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

Çok teşekkürler! Yöntemin why satır 11 why neden bir geçiş olduğunu söyler misiniz? Gerekirse kafam karıştı. –

+0

Düzeltme için teşekkürler. ve evet gerekli değildi. – AceLearn

+0

Ne kadar hızlı cevap veriyorsun! Yardımın için teşekkür ederim :) –