முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 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) பட்டியலாக `எண்ணப்பட்ட_உருப்படிகளை' உருவாக்கவும். `எண்ணப்பட்ட_உருப்படிகளை` மதிப்பிடவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

எண்ணு(வார்த்தைகள், தொடக்கம்=1) → (i, மதிப்பு) tuples.

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 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்