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:
filterikki argument qabul qiladi: funksiyani (function) va takrorlanadigan ob'ektni (iterable).- U
iterableichidagi har biritemelementini aylanib chiqadi. - Har bir
itemuchunfunction(item)chaqiriladi. - Agar
function(item)natijasi haqiqat bo'lsa (bo'lsa hamTruedeb baholanadigan har qanday qiymat),itemnatijaviy iteratorga qo'shiladi. - Agar natija yolg'on bo'lsa (
False,None, 0, bo'sh kolleksiyalar),itemo'tkazib yuboriladi. filterkechiktirilgan (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:
filterkechiktirilgan (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] |