Функсияи filter барои филтр кардани объектҳо дар Python
Биёед ҳоло функсияи filter-ро омӯзем.
Он имкон медиҳад, ки унсурҳои рӯйхатҳо
ва дигар объектҳои такроршавандаро бо шароити муайян
филтр кунем. Он дар параметри аввал функсиеро қабул мекунад,
ки шартро барои санҷиш муайян мекунад.
Дар параметри дуюм рӯйхатеро муайян мекунанд,
ки унсурҳои он филтр карда мешаванд.
Агар функсия True баргардонад, он гоҳ
унсур дар рӯйхати нав боқӣ мемонад. Агар
False баргардонад, он гоҳ унсур ба
рӯйхат дохил намешавад.
Бигзор мо рӯйхате дошта бошем:
lst = [1, 2, 3, 4, 5, 6]
Биёед дар он фақат рақамҳои ҷуфтро боқӣ гузорем.
Барои ин бо ёрии функсияи lambda нависем,
то рақаме, ки ба параметраш дода шудааст,
ба 2 бе боқимонда тақсим шавад:
res = filter(lambda num: num % 2 == 0, lst)
print(list(res))
Пас аз иҷрои код рӯйхати нав бармегардад:
[2, 4, 6]
Рӯйхате бо рақамҳо дода шудааст:
lst = [1, 2, 3, 4, 5]
Ба рӯйхати нав фақат рақамҳои тоқи ин рӯйхатро нависед.
Рӯйхате бо сатрҳо дода шудааст:
lst = ['abcd', 'ab', 'c', 'de', 'bc']
Ба рӯйхати нав фақат сатрҳоеро нависед,
ки дарозиашон ба 2 баробар аст.