2012-12-23 16 views
6
L=[0,8,5,6,4,5,6,14,8] 

मैं [4,5,6] की अनुक्रमणिका वापस लौटने में सक्षम होना चाहता हूं (इस उदाहरण में 4 लौट रहा हूं)।मैं पायथन में किसी सूची में मौजूद कई तत्वों की अनुक्रमणिका कैसे वापस कर सकता हूं?

+4

लोग क्यों मतदान करने के लिए मतदान कर रहे हैं? यह एक बिल्कुल वैध सवाल है। – MyNameIsKhan

+0

मुझे लगता है कि वास्तविक प्रश्न मत उन लोगों से हैं जो मानते हैं कि आपके पास तुलना करने के लिए आपके पास कोई उदाहरण कोड नहीं है। आपके द्वारा किसी से जवाब देने के लिए कुछ जवाब स्पष्ट रूप से आपके प्रश्नों को आंकड़े देते हैं जबकि यह कोई प्रयास नहीं करता है। – Woot4Moo

+0

का डुप्लिकेट: http://stackoverflow.com/questions/7627548/find-sub-list-inside-a-list-in-python – Chronial

उत्तर

1

इस बजाय का उपयोग करें:

' '.join(map(str,L)).index(' '.join(map(str,x)))/2 

संपादित करें: धन्यवाद मूर्खतापूर्ण गलती देख के लिए isbadawi, और भारी गलती की ओर इशारा करने के लिए solilo haha ​​

को
+0

सभी सुझाए गए समाधानों का सबसे तेज़ रनटाइम लगता है, और यह एक-लाइनर है – MyNameIsKhan

+1

'लैम्ब्डा सी: स्ट्र (सी) 'केवल' str' –

+0

के रूप में लिखा जा सकता है ओह हाँ आप सही हैं – jackcogdill

2

यहाँ एक तरीका है इसे लागू करने:

def find_in_list(l, x): 
    for i in range(len(l) - len(x) + 1): 
     if l[i:i+len(x)] == x: 
      return i 
+0

यही वह है जो मैं वर्तमान में कर रहा हूं; क्या एक अंतर्निहित पायथन समारोह है जो इसे एक छोटा सा लाइनर बना देगा? – MyNameIsKhan

1
In [193]: min(i for i in range(len(L)) if L[i:i+len(key)] == key) 
Out[193]: 4 

In [194]: L=[0,8,5,6,4,5,6,14,8] 

In [195]: key=[4,5,6] 

In [196]: min(i for i in range(len(L)) if L[i:i+len(key)] == key) 
Out[196]: 4 
संबंधित मुद्दे

 संबंधित मुद्दे