π Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ filter Π² ΠΠΈΡΠΎΠ½Π΅? Π£Π·Π½Π°ΠΉΡΠ΅ ΠΎΠ± ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ filter Π² ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python π
Π Python ΡΡΠ½ΠΊΡΠΈΡ filter
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ»ΠΎΠ²ΠΈΠΈ.
ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°: ΡΡΠ½ΠΊΡΠΈΡ-ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΠΈ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π€ΡΠ½ΠΊΡΠΈΡ-ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ True
ΠΈΠ»ΠΈ False
.
Π€ΡΠ½ΠΊΡΠΈΡ filter
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠ½ΠΊΡΠΈΡ-ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²Π΅ΡΠ½ΡΠ»Π° True
.
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ filter Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π»
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
# ΠΡΠ²ΠΎΠ΄: [2, 4, 6, 8, 10]
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΡΡΠ½ΠΊΡΠΈΡ filter
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π» ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° numbers
. ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ lambda x: x % 2 == 0
ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠΈΡΠ»ΠΎ x
ΡΠ΅ΡΠ½ΡΠΌ. Π’ΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ»Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True
, ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ even_numbers
.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ filter Π² ΠΏΠΈΡΠΎΠ½Π΅
Π€ΡΠ½ΠΊΡΠΈΡ filter()
Π² ΡΠ·ΡΠΊΠ΅ Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΡ.
ΠΡΠ΅Π΄ΠΈΠΊΠ°Ρ - ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True
ΠΈΠ»ΠΈ False
, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ Π»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
filter(ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ, ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ_ΠΎΠ±ΡΠ΅ΠΊΡ)
ΠΡΠΈΠΌΠ΅ΡΡ:
ΠΡΠΈΠΌΠ΅Ρ 1:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(x):
return x % 2 == 0
even_numbers = list(filter(is_even, numbers))
print(even_numbers)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
[2, 4, 6, 8, 10]
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ is_even()
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ° Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π» ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° numbers
. Π€ΡΠ½ΠΊΡΠΈΡ filter()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ list()
, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠΏΠΈΡΠΎΠΊ.
ΠΡΠΈΠΌΠ΅Ρ 2:
names = ["Alice", "Bob", "Charlie", "Dave"]
def is_long_name(name):
return len(name) > 5
long_names = list(filter(is_long_name, names))
print(long_names)
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
["Charlie"]
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ is_long_name()
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ° Π΄Π»Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈΠΌΠ΅Π½, Π΄Π»ΠΈΠ½Π° ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 5 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° names
.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΡ:
- Π€ΡΠ½ΠΊΡΠΈΡ
filter()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ, Π° Π½Π΅ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡlist()
. - ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ
True
, ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ. ΠΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡFalse
, ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΏΡΡΠ΅Π½. - ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ (lambda) ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΎΠ².
- Π€ΡΠ½ΠΊΡΠΈΡ
filter()
ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠΈΠΏΠ°ΠΌ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΡΠΏΠΈΡΠΊΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠΈ, Π½Π°Π±ΠΎΡΡ ΠΈ Ρ. Π΄. - Π Π΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ
ΠΏΡΠ΅Π΄ΠΈΠΊΠ°Ρ Π²Π΅ΡΠ½ΡΠ»
True
, ΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ.
ΠΡΠ²ΠΎΠ΄:
Π€ΡΠ½ΠΊΡΠΈΡ filter()
Π² ΠΏΠΈΡΠΎΠ½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠ°. ΠΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π²ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².