लूप्स का कार्यान्वयन
शुरू करने के लिए, 1-10 तक के नंबर प्रिंट करते हैं। क्योंकि Python में for लूप zero-indexed होते हैं, आपको हर iteration में एक जोड़ना होगा; नहीं तो आउटपुट 0-9 आएगा।
आइए Datacamp शब्द के string पर for लूप से iterate करें और केवल अक्षर a प्रिंट करें।
मान लीजिए आप तत्वों की एक सूची परिभाषित करना चाहते हैं और उन पर एक-एक करके iterate करना चाहते हैं।
लेकिन अगर आप सूची की लंबाई निकालना चाहें और फिर उस पर iterate करना चाहें तो? इसके लिए आप in-built len फ़ंक्शन का उपयोग करेंगे और फिर उस लंबाई के आउटपुट पर range लगाएंगे।
ध्यान रखें, range हमेशा एक पूर्णांक मान की अपेक्षा करता है।
बहुत बढ़िया! लेकिन जब आप सीधे for i in numbers का उपयोग कर सकते हैं तो len फ़ंक्शन की ज़रूरत क्यों? जवाब सरल है। यदि आप sequence के indices के साथ काम करना या उन्हें संशोधित करना चाहते हैं, जैसे मौजूदा सूची के किसी तत्व को बदलना, तब आपको range(len(sequence)) चाहिए होगा।
कमाल है, है ना? आप if शर्त के आधार पर सूची के तत्वों को संशोधित करने में सक्षम रहे।
अब देखते हैं कि 1 - 20 के बीच विषम संख्याएँ कैसे प्रिंट करें। इसे करने के लिए, आपको range फ़ंक्शन में तीन चीजें देनी होंगी: प्रारंभिक बिंदु, अंतिम बिंदु, और बढ़ोतरी (या steps) जिसकी दर से लूप 1 - 20 के बीच संख्याओं पर increment करेगा।
Nested For लूप
DataFrame की पंक्तियों और कॉलम्स पर iterate करने के लिए For लूप
import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
iris.head()
| sepal_length | sepal_width | petal_length | petal_width | species | |
|---|---|---|---|---|---|
| 0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
len(iris)
# 150
for i in range(len(iris)):
Class = iris.iloc[i,4]
if Class == 'versicolor' and i < 70:
print (Class)
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
अगला, कॉलम्स sepal_length,sepal_width, petal_length और petal_width की हर पंक्ति में दो जोड़ते हैं।
columns = ['sepal_length','sepal_width','petal_length','petal_width']
for indices, row in iris.iterrows():
for column in columns:
iris.at[indices,column] = row[column] + 2
iris.head()
| sepal_length | sepal_width | petal_length | petal_width | species | |
|---|---|---|---|---|---|
| 0 | 7.1 | 5.5 | 3.4 | 2.2 | setosa |
| 1 | 6.9 | 5.0 | 3.4 | 2.2 | setosa |
| 2 | 6.7 | 5.2 | 3.3 | 2.2 | setosa |
| 3 | 6.6 | 5.1 | 3.5 | 2.2 | setosa |
| 4 | 7.0 | 5.6 | 3.4 | 2.2 | setosa |
Lambda फ़ंक्शन के साथ किसी sequence पर iterate करना
Python का lambda फ़ंक्शन बुनियादी for लूप की तुलना में तेज़ और शक्तिशाली है। यह खासकर DataFrames के साथ काम करते समय व्यापक रूप से उपयोग होता है। आप बहुत कम कोड के साथ Lambda फ़ंक्शन की मदद से अपना डेटा प्रोसेस कर सकते हैं। हालांकि, कभी-कभी इसे समझना कठिन हो जाता है।
अब, इसे lambda और map फ़ंक्शन के साथ आजमाते हैं।
Map एक फ़ंक्शन लेता है, जैसे कि एक lambda फ़ंक्शन, और एक sequence x, और फिर एक नया sequence लौटाता है।
यह एक generator फ़ंक्शन लौटाता है और generator से आउटपुट पाने के लिए; आप आउटपुट को list के आर्गुमेंट के रूप में पास करते हैं।
अब, एक कदम पीछे चलते हैं और for लूप वाले तरीके और lambda/map() संयोजन—दोनों को देखते हैं। आप देखेंगे कि दोनों के बीच का फर्क map, lambda जोड़ने और "for" व "in" को हटाने का है। और यह भी कि आप इसे एक ही पंक्ति में कोड कर पाए।
निष्कर्ष
इस बुनियादी Python For लूप ट्यूटोरियल को पूरा करने पर बधाई।
For लूप हर प्रोग्रामिंग भाषा की रीढ़ हैं, और जब बात Python की हो, तो For लूप का उपयोग करना बिल्कुल कठिन नहीं है—ये अंग्रेज़ी वाक्य लिखने जैसी सहजता के साथ आते हैं।
यदि आप Python में for लूप्स के बारे में और सीखना चाहते हैं, तो DataCamp का Python Data Science Toolbox (Part 2) कोर्स करें।
कृपया इस ट्यूटोरियल से संबंधित कोई भी प्रश्न नीचे कमेंट्स सेक्शन में पूछें।
परिचय
अन्य प्रोग्रामिंग भाषाओं की तरह, Python में
forलूप थोड़े अलग होते हैं, क्योंकि वे एक iterator की तरह काम करते हैं और पारंपरिकforकीवर्ड जैसे कम। Python मेंCजैसी सिंटैक्सfor(i=0; i<n; i++)नहीं है, बल्कि आपfor in nका इस्तेमाल करते हैं।इन्हें
list,string,tuple,set,array,data frameजैसी sequence पर iterate करने के लिए उपयोग किया जा सकता है।किसी सूची (list) के तत्वों के दिए गए सेट पर,
forलूप का इस्तेमाल उस सूची के हर आइटम पर iterate करके उसे निष्पादित करने के लिए किया जा सकता है।आइटम्स की एक श्रृंखला पर iterate करने के लिए For लूप
rangeफ़ंक्शन का उपयोग करते हैं।rangeफ़ंक्शन, sequence की लंबाई के आधार पर, दिए गए दायरे के नंबरों वाली एक नई सूची लौटाता है।किसी sequence पर iterate करते समय आप उसके तत्वों के index का भी उपयोग कर सकते हैं, लेकिन कुंजी यह है कि पहले सूची की लंबाई निकालें और फिर उसी लंबाई की सीमा के भीतर श्रृंखला पर iterate करें।
Python में
forलूप zero-indexed होते हैं।आइए जल्दी से इसके implementation भाग पर चलते हैं।
आप एक त्वरित ट्यूटोरियल के लिए यह वीडियो भी देख सकते हैं!