#14 lug'at bilan tanishuv



Download 1,11 Mb.
bet29/29
Sana08.07.2022
Hajmi1,11 Mb.
#757720
1   ...   21   22   23   24   25   26   27   28   29
Bog'liq
piton

filter() FUNKSIYASI
Bu funksiya ham argument sifatida ro'yxat va boshqa funskiyani qabul qilib oladi va berilgan ro'yxat elementlarini berilgan funksiya yordamida saralaydi. Bunda argument sifatida uzatilgan funksiya mantiqiy qiymat qaytarishi kerak (True yoki False).
Keling bunga ham bir misol ko'ramiz: tasodifiy sonlar ro'yxatidan juft sonalrni ajratib oluvchi dastur yozamiz. Dasturimiz 3 qismdan iborat:

  1. 1.

Avvalo, random modulidagi sample() funksiyasi yordamida 0-99 oralig'idagi 10 ta tasodifiy sonlar ro'yxatini tuzib oldik

  1. 2.

Berilgan son juft (True) yoki juft emas (False) ekanligini qaytaruvchi funksiya yozdik

  1. 3.

filter() fuksiyasiga yangi yaratgan juftmi funksiyasi va tasodifiy sonlar ro'yxatini uzatib, yangi juft_sonlar ro'yxatini shakllantridik
1
import random as r
2

3
sonlar = r.sample(range(100),10) # 0-99 oralig'ida 10 ta tasodifiy sonlar
4

5
def juftmi(x):
6
"""x juft bo'lsa True, aks holda False qaytaruvchu funksiya"""
7
return x%2==0
8

9
juft_sonlar = list(filter(juftmi,sonlar))
10
print(sonlar)
11
print(juft_sonlar)
Copied!

Natija
Keling endi shu dasturni lambda yordamida yozamiz:
1
import random as r
2

3
sonlar = r.sample(range(100),10) # 0-99 oralig'ida 10 ta tasodifiy sonlar
4
juft_sonlar = list(filter(lambda son: son%2==0,sonlar))
5

6
print(sonlar)
7
print(juft_sonlar)
Copied!

Natija
Kurib turganingizdek, lambda funksiya yordamida dastur bir muncha qisqaroq chiqadi. Agar juftmi funksiyasi kelajakda shart bo'lmasa, alohida funksiya yaratib o'tirmasdan, bir marttalik lambda funksiyasidan foydalangan afzal.
Keling endi filter() funksiyasi yordamida matnlarni saralashga ham misollar ko'raylik.
Quyidagi dastur mevalar ro'yxatidan b harfiga boshlanuvchi mevalarni ajratib oladi. Bu yerda biz matnlarga tegishli bo'lgan .startswith() metodidan foydalandik. Bu metod, berilgan matn shu harfdan boshlanadimi yoki yo'q tekshiradi va True yoki False qiymat qaytaradi.
1
mevalar = ['olma','anor','anjir','shaftoli',"o'rik","tarvuz","qovun","banan"]
2

3
mevalar_b = list(filter(lambda meva:meva.startswith('b'),mevalar))
4
print(mevalar_b)
Copied!
Quyidagi dastur esa mevalar ro'yxatidan nomi 5 yoki undan kam harfdan iborat mevalarni saralab oladi.
1
mevalar2 = list(filter(lambda meva:len(meva)<=5, mevalar))
2
print(mevalar2)
Copied!
Natija: ['olma', 'anor', 'anjir', "o'rik", 'qovun', 'banan']
Topingchi, quyidagi kod qanday vazifani bajaradi?
1
list(filter(lambda meva:(meva.startswith('a') and meva.endswith('r')), mevalar))
Copied!
SO'NGSO'Z
Ushbu darsimiz bilan biz dasturlash asoslarining katta bir qismiga yakun yasadik, navbat Object Oriented Programming va boshqa katta mavzularga. Lekin, bu mavzularga o'tishdan avval, keyingi darslarimizni bir nechta sodda loyihalar qilishga bag'ishlaymiz.
E'tiboringiz uchun rahmat!
Download 1,11 Mb.

Do'stlaringiz bilan baham:
1   ...   21   22   23   24   25   26   27   28   29




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish