தொகுதி பாடங்கள் (1/4)
பட்டியல் புரிதல்
ஒரு பட்டியல் புரிதல் என்பது விண்ணப்பிப்பதன் மூலம் பட்டியலை உருவாக்கும் ஒரு வெளிப்பாடு ஆகும்
ஒரு மாற்றம் (மற்றும் விருப்பமாக ஒரு வடிகட்டி). அது
ஒற்றை வரியில் for + append என்று எழுத பைத்தோனிக் வழி.
# stile imperativo (verboso)
quadrati = []
for n in range(5):
quadrati.append(n * n)
# stile pythonico
quadrati = [n * n for n in range(5)]
# [0, 1, 4, 9, 16]முழு தொடரியல்
[espressione for elemento in iterabile if condizione]- ** வெளிப்பாடு**: விளைவாக பட்டியலில் என்ன வைக்க வேண்டும்
- செயல்படுத்தக்கூடிய உறுப்புக்கான: source loop
- நிபந்தனை (விரும்பினால்): பொருந்தக்கூடிய உறுப்புகளை மட்டும் வைத்திருக்கும்
pari = [n for n in range(10) if n % 2 == 0]
# [0, 2, 4, 6, 8]
maiuscole = [p.upper() for p in ["ciao", "mondo"]]
# ['CIAO', 'MONDO']
lunghe = [p for p in ["a", "bb", "ccc", "dddd"] if len(p) >= 3]
# ['ccc', 'dddd']வெளிப்பாட்டின் உள்ளே இருந்தால்/இல்லை என்றால் (மும்முறை)
மாற்றம் நிபந்தனையுடன் (வடிகட்டுவதற்குப் பதிலாக), மும்மையைப் பயன்படுத்தவும்
forக்கு முன் வெளிப்பாடு:
[n if n > 0 else 0 for n in [-2, -1, 0, 1, 2]]
# [0, 0, 0, 1, 2]பலவற்றிற்கு: கார்ட்டீசியன் தயாரிப்பு
நீங்கள் பல for உட்பிரிவுகளை உருவாக்கலாம்:
coppie = [(x, y) for x in range(3) for y in range(2)]
# [(0,0), (0,1), (1,0), (1,1), (2,0), (2,1)]for உட்பிரிவுகளின் வரிசை "வெளிப்புறம்-முன்-உள்" என்பது போல் உள்ளது
உள்ளமைக்கப்பட்ட சுழல்கள்.
ஒரு புரிதலைப் பயன்படுத்தாதபோது
- பல உள்ளமை
if/elseகிளைகளுடன் கூடிய சிக்கலான தர்க்கம் → வெளிப்படையான வளையத்தைப் பயன்படுத்தவும். - பக்க விளைவுகள் (அச்சு, கோப்பு எழுதுதல்) → லூப், புரிதல் அல்ல.
- 2 க்கும் மேற்பட்ட உள்ளமை நிலைகள் → வெளிப்படையான பெயரிடப்பட்ட லூப் எப்போதும் சிறந்தது.
உள்ளமைக்கப்பட்ட பட்டியல் புரிதல்கள்
ஒற்றைப் பட்டியல் புரிதலுக்குள் பல for சுழல்களை இணைக்கலாம். உதாரணமாக, ஒரு மேட்ரிக்ஸை (பட்டியல்களின் பட்டியல்) ஒரே தட்டையான பட்டியலில் தட்டச்சு செய்ய, நீங்கள் எழுதலாம்:
matrix = [[1, 2], [3, 4]]
flat = [item for row in matrix for item in row]
# result: [1, 2, 3, 4]லூப்களின் வரிசையானது பாரம்பரிய for சுழல்களின் கூடு கட்டும் வரிசையை சரியாக பிரதிபலிக்கிறது.
முயற்சி செய்து பாருங்கள்
கொடுக்கப்பட்ட `எண்கள் = [1, 2, 3, 4, 5, 6]`, இரட்டை எண்களின் சதுரங்களைக் கொண்டு `கூட_சதுரங்கள்` உருவாக்கவும். `சம_சதுரங்கள்` என்பதை மதிப்பிடவும்.
குறிப்பைக் காட்டு
இறுதியில் n % 2 == 0 என்றால்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
கொடுக்கப்பட்ட `வார்த்தைகள் = ['சியாவோ', 'மோண்டோ', 'பைதான்', 'ஜாவா']`, ஒவ்வொரு வார்த்தையின் நீளத்துடன் `நீளங்கள்` மற்றும் 5 எழுத்துகளுக்குக் குறைவான சொற்களைக் கொண்டு `குறுகிய_வார்த்தைகள்` உருவாக்கவும். `(நீளங்கள், குறுகிய_சொற்கள்)` என்பதை மதிப்பிடுக.
குறிப்பைக் காட்டு
இரண்டு தனித்தனி புரிதல்கள்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
கூடுதல் சவால்
Use a list comprehension to calculate the squares of only the even integers between 1 and 10 inclusive. Store the list in `even_squares` and evaluate it.
குறிப்பைக் காட்டு
வடிகட்ட x % 2 == 0 எனில், மறுசெயல் செய்ய வரம்பைப் (1, 11) பயன்படுத்தவும், மேலும் x**2 ஐ வெளிப்பாடாகவும் பயன்படுத்தவும்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்