Python sort lambda: sorting — How to sort with lambda in Python
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ key ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
Π£ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (ΠΌΠ΅ΡΠΎΠ΄Π° sort ΡΠΏΠΈΡΠΊΠ°, ΡΡΠ½ΠΊΡΠΈΠΈ sorted) Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π΄Π°Π½ΠΈΡ
ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° key. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Β Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²: ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΡΡΠΈΡΡΡΡΡΡ, Π½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ
Π½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΡΡΡ Π΄Π°Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
ΡΠΈΡΡΡ, Π½ΡΠΆΠ½ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°, ΡΡΠ°Π²Π½ΠΈΠ²Π°Ρ
ΠΈΡ
, ΠΊΠ°ΠΊ ΡΠΈΡΠ»Π°, Π° Π½Π΅ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
a = ["10", "20", "30", "1", "2", "3", "111", "112", "222"] a.sort(key=int)
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ int, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²,
ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ int(a[i]) < int(a[j])
. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ int ΠΌΠΎΠΆΠ½ΠΎ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ (ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°) ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅,
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ a.sort(key=len)
, ΡΠΎ ΡΡΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅.
Π ΡΠ»ΠΎΠΆΠ½ΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΠ½ΠΊΡΠΈΡ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΡΡΡ Π΄Π°Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ
ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΠ΅. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΡΡΡ ΡΠΈΡΠ»Π°:
def last_digit(n): return n % 10 a.sort(key=last_digit)
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ key
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ reverse
.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ,
ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΡΠΎ Π·Π°Ρ
Π»Π°ΠΌΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ.
Π ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ: βΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠ΅ ΡΡΠΊΡΠ½ΠΈΠΈ,
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π° def
, ΠΏΡΡΠΌΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡΒ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΡΠΎΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ
return
, ΡΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΡΠ°Π·Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
lambda ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ -Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²: Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠ΅Π» ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ:
a = [3, 15, 22, 13, 12, 32, 45, 43] a.sort(key=lambda n: n % 10)
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΡΡΡ Π΄Π°Π½ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΠ΅ΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΎΡΠΊΠ°: ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· Π΄Π²ΡΡ
ΡΠΈΡΠ΅Π».
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, [(3, -2), (7, 1), (0, 4)]
. ΠΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ
ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π΄ΠΎ ΡΠΎΡΠΊΠΈ. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ:
a.sort(key=lamda point: point[0] ** 2 + point[1] ** 2)
ΠΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠΏΠΈΡΠΊΠ° ΡΠ²Π»ΡΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΈΠ· Π΄Π²ΡΡ
ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΡΠΈΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌ
ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌ [0] ΠΈ [1].
Π£ΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
ΠΠ΅ΡΠ½ΡΠΌΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΠ΅. Π ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅
ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
[22, 12, 32, 3, 13, 43, 15, 45]
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ: ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ°Π²Π½Ρ Π΄ΡΡΠ³ Π΄ΡΡΠ³Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠ»Π° ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΠ΅,
Π° ΠΏΡΠΈ ΡΠ°Π²Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅: 22, 12, 32.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ, ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π²? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΏΡΠΈ ΡΠ°Π²Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΡΠ°ΠΌΠΈΡ
ΡΠΈΡΠ΅Π».
ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ: Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· Π΄Π²ΡΡ
ΡΠΈΡΠ΅Π»: ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ
ΡΠΈΡΡΡ ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠΎΡΡΠ΅ΠΆΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Π² Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΡΠ°Π²Π΅Π½ΡΡΠ²Π΅ ΠΎΡΡΠ°ΡΠΊΠ°
ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΌΠΈ ΡΠΈΡΠ»Π°.
a.sort(key=lambda n: (n % 10, n))
ΠΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±: Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΡΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ
ΡΠΈΡΠ΅Π», Π° Π·Π°ΡΠ΅ΠΌΒ β ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΠ΅. Π’ΠΎΠ³Π΄Π° ΠΏΡΠΈ ΡΠ°Π²Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΡΡΡ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡΡ
ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ.
a.sort() a.sort(key=lambda n: n % 10)
Π’ΠΎ Π΅ΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎ \(k\) ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ (Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ°Π²Π½Ρ, ΡΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ
ΠΏΠΎ Π²ΡΠΎΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΏΠΎ ΡΡΠ΅ΡΡΠ΅ΠΌΡ ΠΈ Ρ.Π΄.) ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° \(k\)
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠΎΡΡΠΈΡΠΎΠ²ΠΎΠΊ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ
ΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (ΠΎΡ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΠΌΠΎΠΌΡ).
Π€ΡΠ½ΠΊΡΠΈΡ operator.itemgetter
ΠΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΡΠ°ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°
ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ
ΠΊΠΎΡΡΠ΅ΠΆΠΈ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 1, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ:
a.sort(key=lambda elem: elem[1])
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π² ΠΌΠΎΠ΄ΡΠ»Π΅ operator
Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ itemgetter
,
ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
def itemgetter(i): return lambda elem: elem[i]
Π’ΠΎ Π΅ΡΡΡ operator.itemgetter(i)
Β β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π»ΡΠΌΠ΄Π±Π°-ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° key
. ΠΡΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ itemgetter
ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ.
ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ .sort() Ρ ΠΊΠ»ΡΡΠΎΠΌ β ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ / Π₯Π°Π±Ρ
ΠΠΎΠ²ΠΎΠ΄ΠΎΠΌ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡ ΡΡΠ°Π»ΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² (ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²) Π² Python Ρ Π½Π΅ ΡΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅ΡΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ°: list.sort(key=…).
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΌΠ½Π΅ ΡΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ ΠΈ Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΡΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²Π΅ΡΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΈ Ρ ΡΠ°ΠΌ.
ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ β ΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΎΠ½ ΠΈΠ· ΡΡΠ΅Ρ ΡΡΡΠΎΠΊ ΡΠ°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
sortList = ['a', 'ΡΡ', 'bbb']
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ .sort() ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ β ΠΏΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ:
sortList.sort()
ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅:
>>> ['a', 'bbb', 'cc']
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ .sort() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ key, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ°Π»ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ Python 2.4.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: 1. Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅; 2. ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, Π²ΠΏΡΠΎΡΠ΅ΠΌ, ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ°ΠΊΠΈΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° key:
sortList = ['a', 'cc', 'bbb']
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ «Π²Π½Π΅ΡΠ½ΡΡ» ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
def sortByAlphabet(inputStr):
Β Β Β Β Β Β Β Β return inputStr[0] # ΠΠ»ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ Π½Π΅ΠΌΡ
# ΠΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎΡΡΠΈΡΡΡΡΠ°Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ:
def sortByLength(inputStr):
Β Β Β Β Β Β Β Β return len(inputStr) # ΠΠ»ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π»ΠΈΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅
print u’ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ: ‘, sortList # >>> [‘a’, ‘cc’, ‘bbb’]
sortList.sort(key=sortByAlphabet) # ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
print u’ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: ‘, sortList # >>> [‘a’, ‘bbb’, ‘cc’]
sortList.sort(key=sortByLength) # ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
print u’ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ: ‘, sortList # >>> [‘a’, ‘cc’, ‘bbb’]
# Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ, Π½ΠΎ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
sortList.sort(key=sortByLength, reverse=True) # Π ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
print u’ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ, Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: ‘, sortList # >>> [‘bbb’, ‘cc’, ‘a’]
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ .sort() ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ, ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ, ΠΈ ΠΠ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ sorted:
newList = sorted(sortList)
β Π»ΠΈΠ±ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ, Π½ΠΎ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ key (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅):
newList = sorted(sortList, key=sortByLength)
Π£ ΠΌΠ΅ΡΠΎΠ΄Π° .sorted() Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½ΠΎ ΠΌΠ½Π΅ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ°.
ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ~ PythonRu
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΌΠ΅Π΅ΡΠ΅ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠΎ Π·Π½Π°Π΅ΡΠ΅ ΠΈ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ Π² Python β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Python. ΠΠΎ ΡΡΠΎ Π½Π΅ΠΊΠΈΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ. ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅ ΠΈ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΎ ΡΡΠ° ΡΡΠ°ΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° lambda
.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π° Π² Python?
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊΠ°ΠΊ ΡΠ°Π·Π±ΠΎΡΡ ΠΏΠΎΠ½ΡΡΠΈΡ Π»ΡΠΌΠ±Π΄Π° Π² Python, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Python Π½Π° Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΡΡΠ»Π΅Π½ΠΈΠ΅. ΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, Π²ΡΠ΅ Π² Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΡΡ ΡΡΡΠΎΠΊΡ ΠΊΠΎΠ΄Π°
x = 5
Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Python ΡΠΈΠΏΠ° int
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 5. x
ΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠΈΠΏ x
ΠΈ Π°Π΄ΡΠ΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ ΡΡΡΠ»Π°Π΅ΡΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ type
ΠΈ id
.
>>> type(x)
<class 'int'>
>>> id(x)
4308964832
Π ΠΈΡΠΎΠ³Π΅ x
ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° int
, Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΎΠ½ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π΅ΡΠ½ΡΠ»Π° ΡΡΠ½ΠΊΡΠΈΡ id
.
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ Π½Π° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ ΠΊΠ°Π½Π°Π»Ρ
ΠΡΠΎΡΡΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ.
Π ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
>>> def f(x):
... return x * x
...
ΠΠΎΠ²ΡΠΎΡΠΈΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ·Π½Π°Π΅ΠΌ type
ΠΈ id
ΠΎΠ±ΡΠ΅ΠΊΡΠ° f
.
>>> def f(x):
... return x * x
...
>>> type(f)
<class 'function'>
>>> id(f)
4316798080
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, Π² Python Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ function
, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ f
β ΡΡΠΎ Π΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ x
Π±ΡΠ» ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° integer
. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ
ΠΌΠΎΠΆΠ½ΠΎ Π΄ΡΠΌΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
. Π Π°Π·Π½ΠΈΡΠ° Π»ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ
ΡΠ°Π½ΡΡ Π΄Π°Π½Π½ΡΠ΅, Π° ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΊΠΎΠ΄.
ΠΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, Π³Π΄Π΅ ΡΡΠ½ΠΊΡΠΈΡ f
ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
def f(x):
return x * x
def modify_list(L, fn):
for idx, v in enumerate(L):
L[idx] = fn(v)
L = [1, 3, 2]
modify_list(L, f)
print(L)
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΈΡΠ°ΡΡ Π΄Π°Π»ΡΡΠ΅.
ΠΡΠ°ΠΊ, modify_list
β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ L
ΠΈ ΡΡΠ½ΠΊΡΠΈΡ fn
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½Π° ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π·Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ
.
ΠΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ°, Π²Π΅Π΄Ρ ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΉΠΌΠ΅ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ modify_list
ΡΡΠ½ΠΊΡΠΈΡ f
, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠ°Π½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ, Π³Π΄Π΅ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½Ρ Π² ΠΊΠ²Π°Π΄ΡΠ°Ρ.
ΠΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ, ΡΡΠΎΠΈΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π»ΡΠΌΠ±Π΄Π°. ΠΡΠΌΠ±Π΄Π° Π² Python β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python:
lambda arguments: expression
ΠΡΠΌΠ±Π΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ), Π½ΠΎ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ f
ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠ΅, ΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
>>> f = lambda x: x * x
>>> type(f)
<class 'function'>
ΠΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: Π° Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ? ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π»ΠΈΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½Π° ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ. Π’Π°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΌΠΈ. Π, ΠΊΠ°ΠΊ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π΄Π°Π»ΡΡΠ΅, Π΅ΡΡΡ ΠΌΠ°ΡΡΠ° ΡΠΈΡΡΠ°ΡΠΈΠΉ, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½ΡΠΆΠ½Ρ.
ΠΡΠΌΠ±Π΄Π° Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π½Π΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΡΠ΄Π°.
>>> f = lambda x: x * x
>>> f(5)
25
Π Π΅ΡΠ»ΠΈ ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°ΠΏΡΡΡΠΌΠΈ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½Π° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±Π΅ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΡΠ»ΠΎΠ²ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅.
>>> f = lambda x, y: x * y
>>> f(5, 2)
10
ΠΡΠ»ΠΈΡΠ½ΠΎ! Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²?
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ Π±Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»Π° True
. ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
>>> f = lambda: True
>>> f()
True
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΉ
Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: Π° ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠΌΠ΅ΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ.
ΠΡΠ²Π΅Ρ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ΅Π½: Π½Π΅Ρ.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΡΠΎ Π»ΡΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΈΠΌΠ΅ΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΉ
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ ΠΈ map
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Π² Python β ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
map()
β ΡΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Python, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Π΅ΡΡΠΈ Π² ΠΊΠ²Π°Π΄ΡΠ°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ map
.
>>> L = [1, 2, 3, 4]
>>> list(map(lambda x: x**2, L))
[1, 4, 9, 16]
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π² Python3 ΡΡΠ½ΠΊΡΠΈΡ map Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ Map
, Π° Π² Python2 β ΡΠΏΠΈΡΠΎΠΊ.
Π’Π°ΠΊ, Π²ΠΌΠ΅ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΅Π΅ Π² map Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠΌΠ±Π΄Π° Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΅Π΅ ΠΏΡΡΠΌΠΎ Π²Π½ΡΡΡΠΈ. Π ΡΡΠΎΠΌ Π΅ΡΡΡ ΡΠΌΡΡΠ», Π΅ΡΠ»ΠΈ ΡΠΏΠΎΠΌΡΠ½ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅.
ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ ΠΈ filter
filter()
β ΡΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΠ»ΡΡΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΡ filter
ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²ΡΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠΈΡΠΊΠ°) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΊΡΠΈΡΠ΅ΡΠΈΡ. ΠΡΠΈΡΠ΅ΡΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π·Π° ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠ½Π° ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β True
, ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΡΡΠ°Π΅ΡΡΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΠΎΡΠΊΠ»ΠΎΠ½ΡΠ΅ΡΡΡ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ True
Π΄Π»Ρ ΡΠ΅ΡΠ½ΡΡ
ΡΠΈΡΠ΅Π» ΠΈ False
β Π΄Π»Ρ Π½Π΅ΡΠ΅ΡΠ½ΡΡ
:
def even_fn(x):
if x % 2 == 0:
return True
return False
print(list(filter(even_fn, [1, 3, 2, 5, 20, 21])))
Π‘ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΡΠΎ Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΆΠ°ΡΠΎ. ΠΠΎΠ΄ Π²ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² ΡΠ°ΠΊΠΎΠΉ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ.
print(list(filter(lambda x: x % 2 == 0, [1, 3, 2, 5, 20, 21])))
Π Π² ΡΡΠΎΠΌ ΡΠΈΠ»Π° Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠΎΠ²
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° β Π±Π°Π·ΠΎΠ²Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² Python. ΠΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠΏΠΈΡΠΊΠ΅ ΡΠΈΡΠ΅Π» ΠΈΠ»ΠΈ ΡΡΡΠΎΠΊ, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎΠΉ. ΠΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ sort
ΠΈ sorted
.
ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ key
Π² sort
ΠΈΠ»ΠΈ sorted
. ΠΠ½ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠΎ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΡΡΡ ΠΊΠ»Π°ΡΡ Employee
.
class Employee:
def __init__(self, name, age):
self.name = name
self.age = age
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΡ Π² ΡΠΏΠΈΡΠΎΠΊ.
Alex = Employee('Alex', 20)
Amanda = Employee('Amanda', 30)
David = Employee('David', 15)
L = [Alex, Amanda, David]
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ»Ρ age
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ². ΠΠΎΡ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ:
L.sort(key=lambda x: x.age)
print([item.name for item in L])
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° key
Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² ΡΡΠ½ΠΊΡΠΈΡ sort
.
ΠΠ°ΡΠ° ΡΠ»ΠΎΠ² ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ
ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, Π»ΡΠΌΠ±Π΄Π° ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (expression) Π² ΡΠ΅Π»Π΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ Π½Π΅ ΠΎΠ± ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ (statement).
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ β Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΡΡΠΎ ΠΏΡΡΠ°ΡΡΡΡ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ ΡΡΠΎ-ΡΠΎ, Π½ΠΎ Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ if
ΠΈΠ»ΠΈ ΡΠΈΠΊΠ»Ρ for
ΠΈ while
ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΡΠΎΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
Π Π²ΠΎΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ β ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
3 + 5
β Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 810 > 5
β Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ TrueTrue and (5 < 3)
β Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ False
Π’Π΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π²Π΅ΡΠ½Π΅Ρ. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ .sort() Ρ ΠΊΠ»ΡΡΠΎΠΌ β ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ / Habr
ΠΠΎΠ²ΠΎΠ΄ΠΎΠΌ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡ ΡΡΠ°Π»ΠΎ ΡΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΡΠΏΠΈΡΠΊΠΎΠ² (ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²) Π² Python Ρ Π½Π΅ ΡΠΌΠΎΠ³ Π½Π°ΠΉΡΠΈ Π² ΡΠ΅ΡΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ°: list.sort(key=…).
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΠΌΠ½Π΅ ΡΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ ΠΈ Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΡΡΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ Π²Π΅ΡΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΠΈΡΠΎΠ½ΠΈΡΡΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΈ Ρ ΡΠ°ΠΌ.
ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ β ΠΈ ΡΠΎΡΡΠΎΠΈΡ ΠΎΠ½ ΠΈΠ· ΡΡΠ΅Ρ ΡΡΡΠΎΠΊ ΡΠ°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
sortList = ['a', 'ΡΡ', 'bbb']
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ .sort() ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π»Π΅ΠΊΡΠΈΠΊΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ β ΠΏΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ:
sortList.sort()
ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅:
>>> ['a', 'bbb', 'cc']
ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ .sort() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ, ΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ key, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ°Π»ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ Python 2.4.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΡΠΏΠΈΡΠΎΠΊ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: 1. Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅; 2. ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, Π²ΠΏΡΠΎΡΠ΅ΠΌ, ΡΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ°ΠΊΠΈΡ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° key:
sortList = ['a', 'cc', 'bbb']
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ «Π²Π½Π΅ΡΠ½ΡΡ» ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
def sortByAlphabet(inputStr):
Β Β Β Β Β Β Β Β return inputStr[0] # ΠΠ»ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ Π½Π΅ΠΌΡ
# ΠΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠΎΡΡΠΈΡΡΡΡΠ°Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ:
def sortByLength(inputStr):
Β Β Β Β Β Β Β Β return len(inputStr) # ΠΠ»ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π»ΠΈΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅
print u’ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ: ‘, sortList # >>> [‘a’, ‘cc’, ‘bbb’]
sortList.sort(key=sortByAlphabet) # ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
print u’ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² Π°Π»ΡΠ°Π²ΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: ‘, sortList # >>> [‘a’, ‘bbb’, ‘cc’]
sortList.sort(key=sortByLength) # ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ
print u’ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ: ‘, sortList # >>> [‘a’, ‘cc’, ‘bbb’]
# Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΡΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ, Π½ΠΎ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
sortList.sort(key=sortByLength, reverse=True) # Π ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅
print u’ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ, Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: ‘, sortList # >>> [‘bbb’, ‘cc’, ‘a’]
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ .sort() ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ, ΠΏΠ΅ΡΠ΅ΡΡΠ°Π²Π»ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π½ΡΡΡΠΈ Π½Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ, ΠΈ ΠΠ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ sorted:
newList = sorted(sortList)
β Π»ΠΈΠ±ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ, Π½ΠΎ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ key (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π²ΡΡΠ΅):
newList = sorted(sortList, key=sortByLength)
Π£ ΠΌΠ΅ΡΠΎΠ΄Π° .sorted() Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π½ΠΎ ΠΌΠ½Π΅ ΠΎΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΠΌΠΈ Π΄Π»Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΎΡΠ°.
ΠΡΠΌΠ±Π΄Π°-ΠΊΠ»ΡΡ
ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π² Python
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
.
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΠΠ — Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Python 3.8.6
- ΠΠ²ΡΠΎΡ
ΠΠ½Π΄ΡΡ ΠΠ°Π»ΠΊΠ΅ ΠΈ Π Π°ΠΉΠΌΠΎΠ½Π΄ Π₯Π΅ΡΡΠΈΠ½Π³Π΅Ρ
- ΠΡΠΏΡΡΠΊ
0,1
Π‘ΠΏΠΈΡΠΊΠΈ Python ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ list.sort ()
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ
Π½Π° ΠΌΠ΅ΡΡΠ΅. Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ sorted ()
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ
ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ.
Π ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΌΡ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python.
ΠΡΠ½ΠΎΠ²Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
ΠΡΠΎΡΡΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠ°: Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ sorted ()
. ΠΡΠΎ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ:
>>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5]
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ list.sort ()
. ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ
Π½Π° ΠΌΠ΅ΡΡΠ΅ (ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΠ΅Ρ
, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ). ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ
ΡΠ΅ΠΌ sorted ()
— Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΠΎΠ½ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ
Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
>>> a = [5, 2, 3, 1, 4] >>> a.sort () >>> Π° [1, 2, 3, 4, 5]
ΠΡΡΠ³ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ list.sort ()
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ
ΡΠΏΠΈΡΠΊΠΈ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΡΡΠ½ΠΊΡΠΈΡ sorted ()
ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ.
>>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}) [1, 2, 3, 4, 5]
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ
Π list.sort (),
ΠΈ sorted ()
ΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ key Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ
ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΠΈΡΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π±Π΅Π· ΡΡΠ΅ΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°:
>>> sorted ("ΠΡΠΎ ΡΠ΅ΡΡΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΎΡ ΠΠ½Π΄ΡΡ" .split (), key = str.lower) ['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° key Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ»ΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅Π»ΡΡ
ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ
ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ.
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»ΠΎΠΆΠ½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΊΠ°ΠΊ ΠΊΠ»ΡΡΠΈ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
>>> student_tuples = [ ... ('john', 'A', 15), ... ('ΠΠΆΠ΅ΠΉΠ½', 'B', 12), ... ('ΠΡΠΉΠ²', 'B', 10), ...] >>> sorted (student_tuples, key = lambda student: student [2]) # ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΡ [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
Π’ΠΎΡ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
>>> ΠΊΠ»Π°ΡΡ Π‘ΡΡΠ΄Π΅Π½Ρ: ... def __init __ (Ρ, ΠΈΠΌΡ, ΠΊΠ»Π°ΡΡ, Π²ΠΎΠ·ΡΠ°ΡΡ): ... self.name = ΠΈΠΌΡ ... ΡΠ΅Π±Ρ.ΠΎΡΠ΅Π½ΠΊΠ° = ΠΎΡΠ΅Π½ΠΊΠ° ... self.age = Π²ΠΎΠ·ΡΠ°ΡΡ ... def __repr __ (ΡΠ°ΠΌ): ... Π²Π΅ΡΠ½ΡΡΡ repr ((self.name, self.grade, self.age))
>>> student_objects = [ ... Π‘ΡΡΠ΄Π΅Π½Ρ ('john', 'A', 15), ... Π‘ΡΡΠ΄Π΅Π½ΡΠΊΠ° ('ΠΠΆΠ΅ΠΉΠ½', 'B', 12), ... Π‘ΡΡΠ΄Π΅Π½Ρ ('dave', 'B', 10), ...] >>> sorted (student_objects, key = lambda student: student.age) # ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΡ [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅, ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Python ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ
ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΈ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ.Π
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈΠΌΠ΅Π΅Ρ itemgetter ()
,
attrgetter ()
ΠΈ ΡΡΠ½ΠΊΡΠΈΡ methodcaller ()
.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΏΡΠΎΡΠ΅ ΠΈ Π±ΡΡΡΡΠ΅Π΅:
>>> ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° import itemgetter, attrgetter
>>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ (Π½Π°Π±ΠΎΡΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ², ΠΊΠ»ΡΡ = itemgetter (2)) [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ (ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΡΡΠ΅Π½ΠΈΠΊΠΈ, ΠΊΠ»ΡΡ = attrgetter ('Π²ΠΎΠ·ΡΠ°ΡΡ')) [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡΠΊΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ
ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΊΠ»Π°ΡΡΡ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΡ :
>>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ (Π½Π°Π±ΠΎΡΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ², ΠΊΠ»ΡΡ = itemgetter (1,2)) [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]
>>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ (ΠΎΠ±ΡΠ΅ΠΊΡΡ-ΡΡΠ΅Π½ΠΈΠΊΠΈ, ΠΊΠ»ΡΡ = attrgetter ('ΠΎΡΠ΅Π½ΠΊΠ°', 'Π²ΠΎΠ·ΡΠ°ΡΡ')) [('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]
ΠΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ
ΠΠ±Π° list.sort ()
ΠΈ sorted ()
ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ
Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.ΠΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅ΡΠΊΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ
Π΄Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π½ΠΈΠΊΠ° Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ:
>>> ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ (Π½Π°Π±ΠΎΡΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ², ΠΊΠ»ΡΡ = itemgetter (2), ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ = True) [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
.
ΠΡΠΌΠ±Π΄Π°-ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π² Python 3
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
ΠΠ°Π³ΡΡΠ·ΠΊΠ°β¦
- ΠΠ²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ
Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅
Π±ΠΎΠ»ΡΠ°ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°-ΡΡΠ΅ΠΊΠ°
.
ΠΠ°ΠΊ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ° — thispointer.com
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ 2-ΠΉ ΠΈΠ»ΠΈ i-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, ΡΠΎ Π΅ΡΡΡ ΡΠ»ΠΎΠ² ΠΈ ΠΈΡ ΡΠ°ΡΡΠΎΡΠ°,
# Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, Ρ.Π΅. ΡΠ»ΠΎΠ²ΠΎ ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΎΡΠ° wordFreq = [('the', 34), ('at', 23), ('should', 1), ('from', 3)]
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΏΡΡΠΌΡΡ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ sort () Π² ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ i.Π΅.
'' ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ sort () ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°. '' ' wordFreq.sort ()
ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ ΠΎΡΡΠΎΡΡΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°, Ρ.Π΅.
[('at', 23), ('from', 3), ('should', 1), ('the', 34)]
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°, ΡΠΎ Π΅ΡΡΡ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ°ΡΡΠΎΡΡ, ΡΠΎ Π΅ΡΡΡ
('should', 1) ('ΠΎΡ', 3) ('Π²', 23) ('the', 34)
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ,
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ»Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ»ΠΈ i-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π°Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ i.Π΅. ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² sort (),
wordFreq.sort (key = KeyFunction ())
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ»ΡΡΠ΅Π²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ?
ΠΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΏΠΈΡΠΊΠ° Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ° Π±ΡΠ΄ΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ½ Π²Π΅ΡΠ½Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Ρ.Π΅.
'' ' Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ '' ' wordFreq.sort (key = lambda elem: elem [1])
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΏΠΈΡΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
[('ΡΠ»Π΅Π΄ΡΠ΅Ρ', 1), ('ΠΎΡ', 3), ('Π²', 23), ('the', 34)]
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ°
Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ· Π½Π΅Π³ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ i.Π΅.
ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ def (tupleElem): Π²Π΅ΡΠ½ΡΡΡ tupleElem [1]
Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ, Ρ.Π΅.
'' ' Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ° '' ' wordFreq.sort (ΠΊΠ»ΡΡ = ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ)
ΠΠ½ ΠΎΡΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°, Ρ.Π΅.
[('Π΄ΠΎΠ»ΠΆΠ΅Π½', 1), ('ΠΎΡ', 3), ('Π²', 23), ('the', 34)]
ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
def ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ (tupleElem): Π²Π΅ΡΠ½ΡΡΡ tupleElem [1] def main (): # Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ i.Π΅. ΡΠ»ΠΎΠ²ΠΎ ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΎΡΠ° wordFreq = [('the', 34), ('at', 23), ('should', 1), ('from', 3)] # Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠ΅ΡΠ°ΡΡ (wordFreq) print ("Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°") '' ' ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ sort () ΡΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°. '' ' wordFreq.sort () ΠΏΠ΅ΡΠ°ΡΡ (wordFreq) print ("Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°") '' ' Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ '' ' wordFreq.sort (key = lambda elem: elem [1]) ΠΏΠ΅ΡΠ°ΡΡ (wordFreq) '' ' Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ° '' ' wordFreq.sort (ΠΊΠ»ΡΡ = ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡ) # Π Π°ΡΠΏΠ΅ΡΠ°ΡΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ ΠΏΠ΅ΡΠ°ΡΡ (wordFreq) Π΅ΡΠ»ΠΈ __name__ == '__main__': Π³Π»Π°Π²Π½ΡΠΉ()
ΠΡΠ²ΠΎΠ΄:
[('the', 34), ('at', 23), ('should', 1), ('from', 3)] Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° [('at', 23), ('from', 3), ('should', 1), ('the', 34)] Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠΏΠΈΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ° ΠΏΠΎ 2-ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΆΠ° [('Π΄ΠΎΠ»ΠΆΠ΅Π½', 1), ('ΠΎΡ', 3), ('Π²', 23), ('Π²', 34)] [('Π΄ΠΎΠ»ΠΆΠ΅Π½', 1), ('ΠΎΡ', 3), ('Π²', 23), ('Π²', 34)]
.