मॉड्यूल पाठ (4/4)
आवश्यक itertools
पायथन बहुत सारे पुनरावृत्ति उपकरण उजागर करता है: कुछ अंतर्निहित (हमेशा) होते हैं
उपलब्ध), अन्य मानक के itertools मॉड्यूल में रहते हैं
पुस्तकालय. यहां सबसे महत्वपूर्ण हैं.
enumerate: सूचकांक + मान
जब आपको लूप के दौरान इंडेक्स और तत्व दोनों की आवश्यकता होती है:
for i, parola in enumerate(["a", "b", "c"]):
print(i, parola)
# 0 a
# 1 b
# 2 c
# parte da un altro numero:
for i, parola in enumerate(["a", "b", "c"], start=1):
print(i, parola)zip: समानांतर में पुनरावृत्त करें
एकाधिक पुनरावर्तनीय तत्वों को तत्व दर तत्व संयोजित करता है:
nomi = ["Ada", "Linus", "Grace"]
eta = [36, 54, 85]
for n, e in zip(nomi, eta):
print(f"{n} ha {e} anni")zip पुनरावर्तनीय सबसे कम पर रुकता है। "लंबे" ज़िप उपयोग के लिए
itertools.zip_longest.
दो समानांतर सूचियों से एक निर्देश बनाना:
dict(zip(nomi, eta))
# {'Ada': 36, 'Linus': 54, 'Grace': 85}itertools.chain: पुनरावृत्तों को संयोजित करें
from itertools import chain
list(chain([1, 2], [3, 4], [5]))
# [1, 2, 3, 4, 5]मध्यवर्ती सूची बनाए बिना: फ़ाइलों, जेनरेटर आदि के लिए उपयोगी।
itertools.count और repeat: अनंत पुनरावर्तक
from itertools import count, repeat
# count(start, step) — interi crescenti infiniti
for i in count(10, 2):
if i > 20: break
print(i)
# 10, 12, 14, 16, 18, 20
# repeat(x, n) — ripete lo stesso valore n volte (o all'infinito senza n)
list(repeat("ok", 3)) # ['ok', 'ok', 'ok']itertools.combinations
किसी दिए गए सभी संयोजन (दोहराव के बिना, क्रम-स्वतंत्र)। लंबाई:
from itertools import combinations
list(combinations([1, 2, 3, 4], 2))
# [(1,2), (1,3), (1,4), (2,3), (2,4), (3,4)]ऑर्डर किया गया संस्करण: permutations। दोहराव वाले वेरिएंट:
combinations_with_replacement और product।
शब्दकोशों और असंतुलित पुनरावृत्तियों के लिए ज़िप()
जैसे ही सबसे छोटा इनपुट पुनरावर्तनीय समाप्त हो जाता है, zip() फ़ंक्शन बंद हो जाता है। यदि आप तत्वों को जोड़ना चाहते हैं और कोई अतिरिक्त मान रखना चाहते हैं (उन्हें None जैसे डिफ़ॉल्ट मान से भरना), तो आप itertools मॉड्यूल से zip_longest() का उपयोग कर सकते हैं। इसके अतिरिक्त, आप तुरंत कुंजी-मूल्य मानचित्र बनाने के लिए zip परिणाम को सीधे dict() पर भेज सकते हैं।
इसे अजमाएं
समानांतर सूचियों `देश = ['इटालिया', 'फ्रांसिया', 'स्पैगना']` और `राजधानियाँ = ['रोमा', 'परिगी', 'मैड्रिड']` को देखते हुए, `मैपिंग` को एक तानाशाही {देश: राजधानी} के रूप में बनाएं। 'मैपिंग' का मूल्यांकन करें.
संकेत दिखाएँ
तानाशाही(ज़िप(देश, राजधानियाँ))
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
दिए गए `शब्द = ['सियाओ', 'मोंडो', 'पायथन']`, i=1 से शुरू होने वाले टुपल्स (i, शब्द) की एक सूची के रूप में `enumerat_items` बनाएं। `एन्यूमरेटेड_आइटम` का मूल्यांकन करें।
संकेत दिखाएँ
गणना करें(शब्द, प्रारंभ=1) → (i, मान) टुपल्स।
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
Given two lists `keys = ['a', 'b', 'c']` and `values = [10, 20, 30]`, use `zip` to pair them and convert the result into a dictionary. Store the resulting dictionary in `my_dict` and evaluate it.
संकेत दिखाएँ
तानाशाही (ज़िप (कुंजियाँ, मान)) का उपयोग करें और इसे my_dict पर असाइन करें।
3 प्रयासों के बाद समाधान उपलब्ध है