ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 6 · 4లో పాఠం 4కోర్సులో 24/36~12 min
మాడ్యూల్ పాఠాలు (4/4)

ముఖ్యమైన ఐటెర్టూల్స్

పైథాన్ పుష్కలంగా పునరావృత సాధనాలను బహిర్గతం చేస్తుంది: కొన్ని అంతర్నిర్మిత (ఎల్లప్పుడూ అందుబాటులో ఉంది), ఇతరులు ప్రామాణిక itertools మాడ్యూల్‌లో నివసిస్తున్నారు లైబ్రరీ. ఇక్కడ చాలా ముఖ్యమైనవి ఉన్నాయి.

enumerate: సూచిక + విలువ

లూప్ సమయంలో మీకు సూచిక మరియు మూలకం రెండూ అవసరమైనప్పుడు:

Python
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: సమాంతరంగా పునరావృతం చేయండి

మూలకం వారీగా బహుళ పునరావృత మూలకాన్ని మిళితం చేస్తుంది:

Python
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.

రెండు సమాంతర జాబితాల నుండి డిక్ట్‌ను రూపొందించడం:

Python
dict(zip(nomi, eta))
# {'Ada': 36, 'Linus': 54, 'Grace': 85}

itertools.chain: పునరుత్పత్తి చేయదగినవి

Python
from itertools import chain
list(chain([1, 2], [3, 4], [5]))
# [1, 2, 3, 4, 5]

ఇంటర్మీడియట్ జాబితాను సృష్టించకుండా: ఫైల్‌లు, జనరేటర్లు మొదలైన వాటికి ఉపయోగపడుతుంది.

itertools.count మరియు repeat: అనంతమైన పునరావృత్తులు

Python
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

ఇచ్చిన అన్ని కలయికలు (పునరావృతాలు లేకుండా, ఆర్డర్-స్వతంత్రం). పొడవు:

Python
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() నిఘంటువుల కోసం మరియు అసమతుల్యమైన ఇటరాబుల్స్

zip() ఫంక్షన్ చిన్నదైన ఇన్‌పుట్ పునరావృతం అయిపోయిన వెంటనే ఆగిపోతుంది. మీరు మూలకాలను జత చేసి, ఏవైనా అదనపు విలువలను ఉంచాలనుకుంటే (వాటిని None వంటి డిఫాల్ట్ విలువతో నింపడం), మీరు itertools మాడ్యూల్ నుండి zip_longest()ని ఉపయోగించవచ్చు. అదనంగా, మీరు కీ-విలువ మ్యాప్‌ను తక్షణమే రూపొందించడానికి zip ఫలితాన్ని నేరుగా dict()కి పంపవచ్చు.

దీనిని ప్రయత్నించండి

వ్యాయామం#python.m6.l4.e1
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

`దేశాలు = ['ఇటాలియా', 'ఫ్రాన్సియా', 'స్పాగ్నా']` మరియు `రాజధానిలు = ['రోమా', 'పరిగి', 'మాడ్రిడ్']` సమాంతర జాబితాలను బట్టి, `మ్యాపింగ్`ని డిక్ట్ {దేశం: రాజధాని}గా రూపొందించండి. `మ్యాపింగ్`ని మూల్యాంకనం చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

డిక్ట్ (జిప్(దేశాలు, రాజధానులు))

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం సమీక్షించండి

వ్యాయామం#python.m6.l4.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

ఇచ్చిన `పదాలు = ['ciao', 'mondo', 'python']`, i=1 నుండి ప్రారంభమయ్యే tuples (i, word) జాబితాగా `enumerated_items`ని రూపొందించండి. `గణించబడిన_అంశాలను` మూల్యాంకనం చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

లెక్కించు(పదాలు, ప్రారంభం=1) → (i, విలువ) టుపుల్స్.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

అదనపు సవాలు

వ్యాయామం#python.m6.l4.e3
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

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 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది