Isoqjanov Ilyos | Python
🚀 #Python: List Comprehension — qisqa, tez va samarali kod yozish usuli
Ko‘p hollarda ro‘yxat (list) yaratish uchun for siklidan foydalanamiz.
Lekin Pythonda buni bitta qatorda yozish mumkin 😎
numbers = [i * 2 for i in range(5) if i > 0]
print(numbers)
🧩 Bu kodda nima bo‘layapti?
1️⃣ for i in range(5) → i qiymatlari: 0, 1, 2, 3, 4
2️⃣ if i > 0 → faqat 1, 2, 3, 4 olinadi
3️⃣ i * 2 → har bir son 2 ga ko‘paytiriladi
✅ Natija: [2, 4, 6, 8]
⚡️ Nega List Comprehension foydali?
✅ 1. Kod qisqaradi
# Oddiy usul
nums = []
for i in range(5):
if i > 0:
nums.append(i * 2)
# List comprehension
nums = [i * 2 for i in range(5) if i > 0]
👉 Natija bir xil, lekin kod ancha ixcham va o‘qilishi oson.
✅ 2. Ishlash tezligi yuqori
append() chaqiruvlari yo‘q, hammasi Pythonning ichki C darajasidagi optimallashtirilgan loopda bajariladi.
Masalan:
import time
# Oddiy for
start = time.time()
nums = []
for i in range(10_000_000):
nums.append(i * 2)
print("Oddiy for:", time.time() - start)
# List comprehension
start = time.time()
nums = [i * 2 for i in range(10_000_000)]
print("List comprehension:", time.time() - start)
💡 Natija odatda 1.5–2 baravar tezroq bo‘ladi!
✅ 3. O‘qish oson va tushunarli
even = [x for x in range(10) if x % 2 == 0]
# Juft sonlar ro‘yxati
✅ 4. Filtrlash va o‘zgartirishni oson qiladi
words = ["hello", "python", "world"]
lengths = [len(w) for w in words] # [5, 6, 5]
✅ 5. Bir necha sikllarni birlashtirish
Hatto bir nechta for ni bitta list comprehension ichida ishlatish ham mumkin:
pairs = [(x, y) for x in [1, 2] for y in ['a', 'b']]
# [(1, 'a'), (1, 'b'), (2, 'a'), (2, 'b')]
💬 Xulosa:
🔹 List comprehension — Pythonning eng qulay sintaksislaridan biri.
🔹 Kodni ixcham qiladi.
🔹 Ishlashni tezlashtiradi.
🔹 O‘qishni osonlashtiradi.
6 · 1K ·