क्या किसी विशिष्ट स्थान से शुरू करने के लिए फॉर लूप को बताना संभव है?

>>> languages = ["C", "C++", "Perl", "Python"] 
>>> for x in languages:
...     print(x)
... 
C
C++
Perl
Python
>>> 

मैं "पर्ल" से शुरू करने के लिए स्क्रिप्ट कैसे प्राप्त कर सकता हूं? मुझे इसे वापस लूप करने की आवश्यकता नहीं है।

6
Nate 9 जिंदा 2017, 22:05
1
सूची को काटकर और उसके माध्यम से पुनरावृति करके
 – 
Andrew Li
9 जिंदा 2017, 22:07
 – 
user25064
9 जिंदा 2017, 22:08
का संभावित डुप्लिकेट ए>
 – 
SiHa
9 जिंदा 2017, 22:21

6 जवाब

languages = ["C", "C++", "Perl", "Python"]
# add start index range by the index of "Perl" 
for x in languages[languages.index("Perl"):]:
  print(x)

# Perl
# Python

for x in languages[languages.index("C++"):]:
  print(x)

# C+=
# Perl
# Python
2
Ari Gold 9 जिंदा 2017, 22:21

सूचियों को उनके सूचकांकों द्वारा myList[start:stop:skip] का उपयोग करके काटा जा सकता है। तीसरे सूचकांक (शून्य-अनुक्रमण) से शुरू होकर, कोई रोक नहीं, और सूचकांकों का कोई लंघन नहीं होगा:

for x in languages[2::]:
    print x

आपको देगा:

Perl
Python

यह भी देखें: पायथन के स्लाइस नोटेशन की व्याख्या करें

4
Community 23 मई 2017, 14:52
भाषाओं में x के लिए क्या है [languages.index("Perl")::]?
 – 
Ari Gold
9 जिंदा 2017, 22:15
मुझे यकीन नहीं है कि वह क्या है..यह मेरे लिए एक वाक्यविन्यास त्रुटि उत्पन्न करता है
 – 
chickity china chinese chicken
9 जिंदा 2017, 22:17
वास्तव में, कोई रास्ता नहीं, भाषाओं को बदलें [2 ::] भाषाओं के साथ [भाषाएं। इंडेक्स ("पर्ल"):], पर्ल की अनुक्रमणिका दें ताकि कोई int की आवश्यकता न हो
 – 
Ari Gold
9 जिंदा 2017, 22:19

आप इसके लिए itertools.dropwhile का उपयोग कर सकते हैं:

>>> import itertools

>>> languages = ["C", "C++", "Perl", "Python"] 

>>> for language in itertools.dropwhile(lambda x: x != 'Perl', languages):
...     print(language)
... 
Perl
Python
>>> 

itertools.dropwhile दो तर्क लेता है, एक फ़ंक्शन जो यह निर्धारित करता है कि सूची तत्व आपके वांछित प्रारंभिक मूल्य के बराबर है, और चलने योग्य - आपके मामले में एक सूची - जिसे आप लूप करना चाहते हैं। dropwhile तत्वों को तब तक छोड़ देगा जब तक कि उसे कोई ऐसा नहीं मिल जाता है जो फ़ंक्शन को संतुष्ट करता है, फिर यह सभी तत्वों को तब तक आउटपुट करेगा जब तक कि चलने योग्य समाप्त न हो जाए।

यह तब उपयोगी होता है जब प्रारंभ बिंदु के चयन के लिए आपके मानदंड साधारण समानता की तुलना में अधिक जटिल हों। उदाहरण के लिए, यदि आप "पी" से शुरू होने वाले पहले तत्व से शुरू करना चाहते हैं तो आप यह कर सकते हैं:

>>> for language in itertools.dropwhile(lambda x: not x.startswith('P'), languages):
...     print(language)
... 
Perl
Python
>>> 

इसका उल्टा itertools.takewhile है, जो तब तक पुनरावृति करेगा जब तक प्रदान किया गया फ़ंक्शन संतुष्ट है।

3
snakecharmerb 10 जिंदा 2017, 08:47

इसे इस्तेमाल करे। मुझे आशा है कि यह आपकी मदद करेगा

languages = ["C", "C++", "Perl", "Python"]

for k in range(0,len(languages)):
  print(languages[k-2])

और आउटपुट है:

Perl
Python
C
C++

पायथन में लूप फ़ंक्शन के लिए है (x में k के लिए (प्रारंभ, रोकें, चरण))। यहाँ x आपकी सूची या स्ट्रिंग चर है और

start : Indicates where the for loop should start and the index starts from zero.

stop : Indicates where the for loop ends. It takes up to (n-1) elements.

उदाहरण के लिए :

for k in range(0,100):

यह शून्य से 99 तक आउटपुट देता है और यदि आप 100 का आउटपुट चाहते हैं। यू को इस तरह उल्लेख करना चाहिए:

n = 100
for k in range(n+1):
    print k

आउटपुट 0 से 100 तक है। इस मामले में लूप शून्य से इंडेक्स (शुरू) लेगा।

step : Indicates how many steps should do in for loop. By default step is one in for loop.

उदाहरण के लिए:

for k in range(0,10,1):
    print k
#output is 0,1,2,3,4,5,6,7,8,9


for k in range(0,10,2):
    print k
#output is 0,2,4,6,8

for k in range(0,10,3):
    print k
#output is 0,3,6,9
2
shiva 10 जिंदा 2017, 11:01

तुम कोशिश कर सकते हो :

languages = ["C", "C++", "Perl", "Python"]
for i in range(languages.index("Perl"),len(languages)):
    # 1st parameter of range will find Perl's index from list languages
    #2nd parameter - Length of list
    print languages[i]


Perl
Python
1
Harsha Biyani 10 जिंदा 2017, 12:04

यदि आप तत्वों को पर्ल की शुरुआत से सूची के अंत तक चाहते हैं

languages = ["C", "C++", "Perl", "Python"]
print languages

लिस्ट स्लाइसिंग द्वारा यह बहुत आसान है

print languages[2:]

आउटपुट:

['Perl', 'Python']

आप इस सूची को लूप कर सकते हैं और तत्वों को अलग लाइन पर प्राप्त कर सकते हैं।

और यहां तक ​​​​कि अगर आप लूपबैक तत्वों को पर्ल से बैक-टू-पर्ल में प्राप्त करना चाहते हैं तो भी आप सूची स्लाइसिंग का उपयोग कर सकते हैं

a = []
a.extend(languages[2:])
a.extend(languages[:2])
print a

आउटपुट:

['Perl', 'Python', 'C', 'C++']
0
Shivkumar kondi 10 जिंदा 2017, 11:18