Sobes.tech
Junior

Python'da filter() funksiyasi qanday ishlaydi?

sobes.tech AI

AIdan javob

filter(function, iterable) funksiyasi iterable elementlaridan function(item) haqiqat (true) qiymatini qaytaradiganlarni iterator shaklida yaratadi.

Ishlash prinsipi:

  1. filter ikki argument qabul qiladi: funksiyani (function) va takrorlanadigan ob'ektni (iterable).
  2. U iterable ichidagi har bir item elementini aylanib chiqadi.
  3. Har bir item uchun function(item) chaqiriladi.
  4. Agar function(item) natijasi haqiqat bo'lsa (bo'lsa ham True deb baholanadigan har qanday qiymat), item natijaviy iteratorga qo'shiladi.
  5. Agar natija yolg'on bo'lsa (False, None, 0, bo'sh kolleksiyalar), item o'tkazib yuboriladi.
  6. filter kechiktirilgan (lazy) tarzda filtrlangan elementlarni ishlab chiqaradigan iteratorni qaytaradi.

Foydalanish misoli:

# Juft sonlarni filtrlash
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers_iterator = filter(lambda x: x % 2 == 0, numbers)

# Iteratorni ro'yxatga aylantirish va ko'rsatish
print(list(even_numbers_iterator))

# Bo'sh bo'lmagan satrlarni filtrlash
strings = ["hello", "", "world", None, "python"]
non_empty_strings_iterator = filter(None, strings) # None funksiyasi xuddi identity (lambda x: x) kabi, haqiqatni tekshiradi

print(list(non_empty_strings_iterator))

List tushunchalari bilan taqqoslaganda:

  • filter kechiktirilgan (lazy) ishlashni ta'minlaydi, katta ma'lumotlar bilan samarali.
  • List tushunchasi darhol yangi ro'yxatni yaratadi (ko'proq xotira talab qiladi).
Xususiyat filter() List tushunchasi
Qaytargan tur Iterator Ro'yxat
Baholash Kechiktirilgan (so'rov bo'yicha) To'liq (yaratilganda)
Xotira Katta ma'lumotlar uchun samarali Ko'p xotira talab qilishi mumkin
Sintaksis filter(func, iterable) [item for item in iterable if condition]