filter() funksiyasi
Pythonda filter() funksiyasi funksiya va argumentni qabul qilib, funksiyadagi shartni bajarib elementlarni ajratadi va qiymat qaytaradi.
Afzalligi: kam kod yoziladi, sikllardan foydalanish shart emas, xotiradan faqat bir marta vaqtincha foydalanadi.
Avtomobil filteri havodan chang va chiqindilarni ajratib motorga toza havoni yetkazib berishi filter funksiyasiga yaqqol namunadir.
#—————————————-#
print("".join(reversed('teskari')))
# reversed funksiyasi satrni teskari o'girib beradi
irakset
#—————————————-#
Satr turidagi elementlarni teskarisiga o'girganda ham bir xil so'z paydo bo'ladigan elementlarni chop qilish dasturi
def birxil(word):
return word.lower() == "".join(reversed(word)).lower()
satr = ["nonushta", "non", "qovoq", "dastur"]
var=filter(birxil, satr)
print(var)
# filter() funksiyasi filter obyektini qaytaradi
print(type(var))
# obyekt turini aniqlaymiz
print(list(var))
# filter obyektini ro'yxatga o'tkazib olish uchun list() funksiyasidan foydalaniladi
print(list(f))
['non', 'qovoq']
#—————————————-#
lugat = {1: 'tuya', 2: 'maymun', 3: 'sirtlon', 4: 'burgut', 5: 'olmaxon'}
# lug'at
juft = dict(filter(lambda elem: elem[0] % 2 == 0, lugat.items()))
# juft raqamli kalitlardan iborat bo'lgan lug'at turida ajratib olamiz
print(juft)
# lug'at turida natijani chop qilamiz
{2: 'maymun', 4: 'burgut'}
print(', '.join(list(juft.values())))
# lug'at turidagi natijani satr turiga o'zgartirib chop qilamiz
maymun, burgut
#—————————————-#
yetti = dict(filter(lambda elem: len(elem[1]) == 7, lugat.items()))
# 7 ta harfdan iborat bo'lgan lug'at qiymatlarini lug'at turida ajratib olamiz
print(list(yetti.values()))
# lug'at turidagi natijani ro'yxat turiga o'zgartirib chop qilamiz
['sirtlon', 'olmaxon']
#—————————————-#
juft = dict(filter(lambda elem: elem[0] % 1 == 0 and len(elem[1]) == 4, lugat.items()))
# toq raqamli kalitlardan va 4 ta belgidan iborat bo'lgan qiymatlarni lug'at turida ajratib olamiz
print(', '.join(list(juft.values())))
# lug'at turidagi natijani satr turiga o'zgartirib chop qilamiz
tuya
#—————————————-#
yosh = {15: 'Dilnoza', 12: 'Otabek', 22: 'Sanjar', 41: 'Iskandar'}
print(dict(filter(lambda elem: elem[0] > 18, yosh.items())))
# ro'yxatdan 18 yoshdan katta kishilarni ajratib olib chop qilish
{22: 'Sanjar', 41: 'Iskandar'}
#—————————————-#
massiv1 = [1, 3, 6, 7, 12, 19, 19, 21, 21, 27, 29, 1]
massiv2 = [1, 19, 29]
mavjud = list(filter(lambda x: x not in massiv2, massiv1))
# massiv2 da mavjud bo'lmagan massiv1 dagi raqamlarni ro'yxat turida chop qilish
print(mavjud)
[3, 6, 7, 12, 21, 21, 27]
#—————————————-#
satr = "Bugu*n#
@h&avo ju%da is%%s%iq!$"
belgi = filter(lambda x: x not in ['#', '$', '@', '*', '%', '&'], satr)
# satrdan quyidagi belgilarni o'chiramiz
print(''.join(
belgi
))
Bugun havo juda issiq!
#—————————————-#
names = ['Durdona Jakbaraliyeva', 'Munisa Keldiyorova', 'Boysoat Namozov', 'Oybek Ibrohimov', 'Mohinur Abdurahimova']
print(list(filter(lambda x: x.split(' ')[1][-2:] == 'va', names)))
# Ro'yxatdan qizlarni ism familiyasini ajratib olib chop qilish
['Durdona Jakbaraliyeva', 'Munisa Keldiyorova', 'Mohinur Abdurahimova']
#—————————————-#
aralash = ["", 7, 21, 27, 42, 112, 256, True, False, [], {}]
print(list(filter(None, aralash)))
# 0 ga teng bo'lmagan elementlarni ajratib olib chop qilish
[7, 21, 27, 42, 112, 256, True]
#—————————————-#
Mavzu sizga ma'qul kelgan bo'lsa mavzuni dasturlashga oid guruhlarga yuborib muhokama qiling.Tushunmagan savollaringizni izohda yozib qoldiring.
#filter
@pythonuz