முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 6 · பாடம் 1 இன் 4பாடத்திட்டத்தில் 21/36~12 min
தொகுதி பாடங்கள் (1/4)

பட்டியல் புரிதல்

ஒரு பட்டியல் புரிதல் என்பது விண்ணப்பிப்பதன் மூலம் பட்டியலை உருவாக்கும் ஒரு வெளிப்பாடு ஆகும் ஒரு மாற்றம் (மற்றும் விருப்பமாக ஒரு வடிகட்டி). அது ஒற்றை வரியில் for + append என்று எழுத பைத்தோனிக் வழி.

Python
# 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]

முழு தொடரியல்

Python
[espressione for elemento in iterabile if condizione]
  • ** வெளிப்பாடு**: விளைவாக பட்டியலில் என்ன வைக்க வேண்டும்
  • செயல்படுத்தக்கூடிய உறுப்புக்கான: source loop
  • நிபந்தனை (விரும்பினால்): பொருந்தக்கூடிய உறுப்புகளை மட்டும் வைத்திருக்கும்
Python
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க்கு முன் வெளிப்பாடு:

Python
[n if n > 0 else 0 for n in [-2, -1, 0, 1, 2]]
# [0, 0, 0, 1, 2]

பலவற்றிற்கு: கார்ட்டீசியன் தயாரிப்பு

நீங்கள் பல for உட்பிரிவுகளை உருவாக்கலாம்:

Python
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 சுழல்களை இணைக்கலாம். உதாரணமாக, ஒரு மேட்ரிக்ஸை (பட்டியல்களின் பட்டியல்) ஒரே தட்டையான பட்டியலில் தட்டச்சு செய்ய, நீங்கள் எழுதலாம்:

Python
matrix = [[1, 2], [3, 4]]
flat = [item for row in matrix for item in row]
# result: [1, 2, 3, 4]

லூப்களின் வரிசையானது பாரம்பரிய for சுழல்களின் கூடு கட்டும் வரிசையை சரியாக பிரதிபலிக்கிறது.

முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#python.m6.l1.e1
முயற்சிகள்: 0ஏற்றுகிறது…

கொடுக்கப்பட்ட `எண்கள் = [1, 2, 3, 4, 5, 6]`, இரட்டை எண்களின் சதுரங்களைக் கொண்டு `கூட_சதுரங்கள்` உருவாக்கவும். `சம_சதுரங்கள்` என்பதை மதிப்பிடவும்.

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

இறுதியில் n % 2 == 0 என்றால்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

மதிப்பாய்வு பயிற்சி

உடற்பயிற்சி#python.m6.l1.e2
முயற்சிகள்: 0ஏற்றுகிறது…

கொடுக்கப்பட்ட `வார்த்தைகள் = ['சியாவோ', 'மோண்டோ', 'பைதான்', 'ஜாவா']`, ஒவ்வொரு வார்த்தையின் நீளத்துடன் `நீளங்கள்` மற்றும் 5 எழுத்துகளுக்குக் குறைவான சொற்களைக் கொண்டு `குறுகிய_வார்த்தைகள்` உருவாக்கவும். `(நீளங்கள், குறுகிய_சொற்கள்)` என்பதை மதிப்பிடுக.

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

இரண்டு தனித்தனி புரிதல்கள்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

கூடுதல் சவால்

உடற்பயிற்சி#python.m6.l1.e3
முயற்சிகள்: 0ஏற்றுகிறது…

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