Python List Comprehension
In this page:
new_list = [expression for item in iterable if condition]
Basic List Comprehension
List comprehensions किसी मौजूदा iterable से एक expression में नई list बनाती हैं — [x*2 for x in nums] — और आमतौर पर equivalent explicit for-loop-with-append pattern से ज़्यादा concise और तेज़ भी होती हैं, क्योंकि looping optimized C code में होती है।
उदाहरण: Basic List Comprehension
nums = [1, 2, 3]
doubled = [x * 2 for x in nums] # builds a new list by doubling each item
print(doubled)
Conditions से Filter करना
for clause के बाद एक 'if condition' जोड़ने से यह filter होता है कि कौन-से elements result में जाएँगे — [x for x in nums if x % 2 == 0] सिर्फ even numbers रखता है, बाकी को transform करने की बजाय पूरी तरह skip कर देता है।
उदाहरण: Filtering with Conditions
nums = [1, 2, 3, 4, 5, 6]
evens = [x for x in nums if x % 2 == 0] # the if clause filters out odd numbers
print(evens)
If-Else Conditions इस्तेमाल करना
for clause से पहले रखा गया ternary if-else किसी condition के आधार पर हर element को filter करने की बजाय transform करता है — [even if x % 2 == 0 else odd for x in nums] सभी items रखता है पर उनकी value बदल देता है।
उदाहरण: Using If-Else Conditions
nums = [1, 2, 3, 4]
labels = ["even" if x % 2 == 0 else "odd" for x in nums] # if-else transforms every item
print(labels)
Comprehension में Nested Loops
आप कई for clauses को chain करके nested loops को एक comprehension में flatten कर सकते हैं — [x for row in matrix for x in row] किसी 2D list के हर element को उसी left-to-right क्रम में visit करता है जैसे equivalent nested for loop लिखने पर होता।
उदाहरण: Nested Loops in Comprehension
matrix = [[1, 2], [3, 4]]
flat = [x for row in matrix for x in row] # outer loop over rows, inner loop over each row's items
print(flat)
Strings और Iterables पर Iterate करना
चूँकि comprehensions सिर्फ lists ही नहीं, किसी भी iterable पर काम करते हैं, आप एक ही syntax इस्तेमाल करके string के characters, tuple के elements, या generator के output से एक list बना सकते हैं।
उदाहरण: Iterating over Strings and Iterables
letters = [c for c in "cat"]
print(letters)
Chapter Quiz — Complete all 12 topics to unlock
0/12 topics done
Complete these topics first: