पायथन फॉर्च समतुल्य


190

मैं पाइथन में गोता लगा रहा हूं और मेरे पास फॉरएच इटरेशन के बारे में एक सवाल है। मैं पायथन के लिए नया हूं और मुझे C # में कुछ अनुभव है। इसलिए मैं सोच रहा हूं, अगर मेरे संग्रह में सभी वस्तुओं में पुनरावृत्ति के लिए पायथन में कुछ समान कार्य हैं, जैसे

pets = ['cat', 'dog', 'fish']
marks = [ 5, 4, 3, 2, 1]

या इस तरह का कुछ।


जवाबों:



30

ऐशे ही:

for pet in pets :
  print(pet)

वास्तव में, पायथन में केवल फॉर्च स्टाइल forलूप होते हैं।


12

इसका अवलोकन करना भी दिलचस्प है

एक दृश्य के सूचकांकों से अधिक पुनरावृति करने के लिए आप को जोड़ सकते हैं range()और len()के रूप में इस प्रकार है:

a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
  print(i, a[i])

उत्पादन

0 Mary
1 had
2 a
3 little
4 lamb

# 1 संपादित करें: वैकल्पिक तरीका:

जब एक अनुक्रम के माध्यम से लूपिंग, स्थिति सूचकांक और इसी मूल्य enumerate()समारोह का उपयोग कर एक ही समय में प्राप्त किया जा सकता है।

for i, v in enumerate(['tic', 'tac', 'toe']):
  print(i, v)

उत्पादन

0 tic
1 tac
2 toe

4

एक अद्यतन उत्तर के लिए आप forEachपायथन में एक समारोह आसानी से बना सकते हैं:

def forEach(list, function)
  for i,v in enumerate(list))
    function(v, i, list)

आप भी इस अनुकूल करने के लिए कर सकता है map, reduce, filter, और अन्य भाषाओं या पूर्वता से किसी भी अन्य सरणी कार्यों तुम पर लाना चाहते हैं चाहते हैं। के लिए छोरों काफी तेजी से कर रहे हैं, लेकिन बायलर प्लेट forEachया अन्य कार्यों की तुलना में लंबा है । आप एक स्थानीय पॉइंटर के साथ इन कार्यों को एक कक्षा में करने के लिए सूची का विस्तार भी कर सकते हैं ताकि आप उन्हें सीधे सूचियों पर भी कॉल कर सकें।


1
क्या आप कृपया उपयोग शामिल कर सकते हैं?
स्कॉट्टीब्लाड्स

3

जबकि ऊपर दिए गए उत्तर मान्य हैं, यदि आप एक तानाशाह {कुंजी: मान} से अधिक परेशान कर रहे हैं, तो यह वह तरीका है जिसका मैं उपयोग करना चाहता हूं:

for key, value in Dictionary.items():
    print(key, value)

इसलिए, अगर मैं अपने शब्दकोश में सभी कुंजियों और मूल्यों को कड़ा करना चाहता हूं, तो मैं यह करूंगा:

stringified_dictionary = {}
for key, value in Dictionary.items():
    stringified_dictionary.update({str(key): str(value)})
return stringified_dictionary

इस प्रकार की पुनरावृत्ति को लागू करते समय यह किसी भी उत्परिवर्तन से बचा जाता है, जिससे मेरे अनुभव में अनियमित व्यवहार (कभी-कभी) हो सकता है।


इसका अधिक पठनीय विकल्प copyडिक्शनरी के पुनरावृति के लिए है, इसलिए आप for key, value in Dictionary.copy().items()
डिक्शनरेशन के

1

एक dict के लिए हम एक पाश के लिए पुनरावृति करने के लिए के माध्यम से उपयोग कर सकते हैं index, keyऔर value:

dictionary = {'a': 0, 'z': 25}
for index, (key, value) in enumerate(dictionary.items()):
     ## Code here ##
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.