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.
[x*2 for x in range(5)] poora loop ek line mein � padhne mein clean, likhne mein fast.
[x for x in data if x > 0] sirf positive values � condition lagake data filter karo.
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.
# 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.
# 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']sorted() se arrange karo � yeh workflow bahut common hai.Advanced comprehension patterns
Comprehension mein nested loops bhi ho sakte hain. Dictionary comprehension aur set comprehension bhi exist karte hain � same pattern, alag brackets.
# 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()returnNonekarta hai � usesorted()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.