20 min � Beginner � Prerequisite: Functions

List Comprehension & Sorting

Ek line mein list banao, data filter karo, aur results sort karo � yeh Pythonic way hai.

Python mein list banane ka sabse clean tarika hai list comprehension. Loop + append ki jagah ek single line mein nayi list mil jaati hai. Sorting data analysis mein sabse zyada use hota hai � marks sort karo, names arrange karo, best results nikalo.

WHY: List comprehension kyun zaroori hai

Traditional loop se 3-4 line ka kaam ek line mein ho jaata hai. Code padhne mein clean dikhta hai aur Pythonic lagta hai. Data analysis mein jab large datasets ho, toh comprehension sely filtered results milte hain.

ONE-LINER

[x*2 for x in range(5)] poora loop ek line mein � padhne mein clean, likhne mein fast.

FILTER

[x for x in data if x > 0] sirf positive values � condition lagake data filter karo.

SORTED

sorted() naya sorted list deta hai, .sort() existing list sort karta hai � dono mein fark samjho.

HOW: list comprehension syntax

Syntax simple hai: [expression for item in iterable]. Expression woh kaam hai jo har item par hoga. Iterable list, range, ya koi bhi sequence ho sakta hai.

python
# List comprehension
squares = [x**2 for x in range(6)]
print(squares) # [0, 1, 4, 9, 16, 25]

# With condition
positives = [x for x in [-2, 3, -1, 4, 0] if x > 0]
print(positives) # [3, 4]

# String comprehension
names = ["aman", "priya", "rahul"]
upper_names = [name.upper() for name in names]
print(upper_names) # ['AMAN', 'PRIYA', 'RAHUL']

Sorting: sorted() vs .sort()

Dono ka kaam same hai � data ko order mein lana. Fark yeh hai ki sorted() ek naya list return karta hai (original safe rehta hai), jabki .sort() original list ko hi modify karta hai.

python
# Sorting
scores = [85, 92, 78, 95, 88]
print(sorted(scores)) # [78, 85, 88, 92, 95]
print(sorted(scores, reverse=True)) # [95, 92, 88, 85, 78]

# Sort by key
words = ["banana", "apple", "cherry"]
print(sorted(words, key=len)) # ['apple', 'banana', 'cherry']
Data analysis tip: Jab CSV ya database se data aaye, toh pehle list comprehension se filter karo, phir sorted() se arrange karo � yeh workflow bahut common hai.
Try it: student marks analysisCode edit karo aur naye marks add karke run karo
Run Python dabayein

Advanced comprehension patterns

Comprehension mein nested loops bhi ho sakte hain. Dictionary comprehension aur set comprehension bhi exist karte hain � same pattern, alag brackets.

python
# Nested comprehension
pairs = [(x, y) for x in [1, 2] for y in [3, 4]]
print(pairs) # [(1, 3), (1, 4), (2, 3), (2, 4)]

# Dictionary comprehension
word_lengths = {w: len(w) for w in ["hello", "world"]}
print(word_lengths) # {'hello': 5, 'world': 5}

# Set comprehension (unique values)
nums = [1, 2, 2, 3, 3, 3]
unique = {n for n in nums}
print(unique) # {1, 2, 3}

WHERE: real-world use cases

Data analysis mein yeh patterns daily use hote hain:

  • CSV column se sirf numeric values nikalna
  • API response mein specific field extract karna
  • Logs se error entries filter karna
  • Student scores ko grade-wise arrange karna

Abhi ke baad kya?

Modules next topic hai � Python ka standard library explore karoge, import seekhoge, aur math, random, datetime jaise useful modules use karoge.

Quick check

List comprehension likho jo 1 se 10 tak ke even numbers ki list banaye.

range(1, 11) se 1 se 10 tak numbers milenge. Condition lagao jo sirf even rakhe.

Common mistakes

  • .sort() return None karta hai � use sorted() jab original list safe rakhni ho.
  • Comprehension mein complex logic mat dalo � readability kaafi important hai.
  • Comma miss karna comprehension ke andar syntax error deta hai.
Pythonic rule: Agar comprehension ek line se lambi ho rahi hai, toh normal loop use karo. Code padhna aasan hona chahiye.