Junior
Ինչպես է աշխատում filter() ֆունկցիան Python-ում?
sobes.tech AI
Պատասխան AI-ից
Ֆիլտրի filter(function, iterable) գործառույթը ստեղծում է ինթերատոր այն տարրերից iterable, որոնց համար function(item) վերադարձնում է ճշմարիտ (true) արժեք:
Աշխատանքի սկզբունքը:
filterընդունում է երկու արգումենտ՝ ֆունկցիա (function) և ինթերատոր օբյեկտ (iterable).- Այն անցնում է յուրաքանչյուր տարր
item-ի վրաiterable-ում: - Յուրաքանչյուր
item-ի համար կանչվում էfunction(item): - Եթե
function(item)-ի արդյունքը ճշմարիտ է (յուրաքանչյուր արժեք, որը գնահատվում է որպեսTrueբուլյան կոնտեքստում),item-ը ներառվում է արդյունք ինթերատորում: - Եթե արդյունքը կեղծ է (
False,None, 0, դատարկ հավաքածուներ),item-ը բաց թողնվում է: filterվերադարձնում է ինթերատոր, որը դանդաղորեն գեներացնում է ֆիլտրված տարրերը:
Օրինակ օգտագործում:
# Զույգ թվերի ֆիլտրում
թվեր = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers_iterator = filter(lambda x: x % 2 == 0, թվեր)
# Իթերատորից ցուցակ փոխարկում ցուցադրության համար
print(list(even_numbers_iterator))
# Անպատասխան տողերի ֆիլտրում
տողեր = ["հելլո", "", "աշխարհ", None, "python"]
non_empty_strings_iterator = filter(None, տողեր) # None որպես ֆունկցիա համարժեք է ինքնությանը (lambda x: x), ստուգում է ճշմարտացիությունը
print(list(non_empty_strings_iterator))
Արտահայտություն գեներատորների ցուցակներից:
filterվերադարձնում է ինթերատոր (դանդաղեցված կատարման), ինչը արդյունավետ է մեծ տվյալների համար:- Ցուցակների գեներատորը ստեղծում է նոր ցուցակ անմիջապես (պահանջում է ավելի շատ հիշողություն):
| Գծանշում | filter() | Ցուցակների գեներատոր |
|---|---|---|
| Վերադարձվող տիպը | Իթերատոր | Ցուցակ |
| Հաշվարկը | Դանդաղեցված (պահանջվում է) | Ամբողջական (միջից սկսած) |
| Հիշողություն | Էֆեկտիվ մեծ տվյալների համար | Կարող է շատ հիշողություն պահանջել |
| Սինտաքսիս | filter(func, iterable) |
[item for item in iterable if condition] |