ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΄ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ dictionary
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Dictionary ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΎΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠΈ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π² Π½Π°ΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΈΡΠΊΠ°ΡΠ΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΆΠ΅ ΡΡΠΎ Π·Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ°ΠΊΠΎΠΉ, Dictionary, ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π‘ΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Π΄Π°ΠΆΠ΅ Ρ Π²Π΅ΡΡΠΌΠ° ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ: ΠΌΠΎΠ», ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΊΡΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (LOH), ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΈ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ² LINQ!
ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ. Π‘Π»ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΡΠ°ΡΠ΅Π½, ΡΠΊΠΎΠ»ΡΠΊΠΎ Β«ΡΠ»Π΅Π΄ΠΎΠ²Β» ΠΎΡΡΠ°Π²ΠΈΡ Π² ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡΡ ΠΈ LOH, Π²ΡΠ·ΡΠ²Π°Ρ ΠΈΠ·Π»ΠΈΡΠ½ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°; ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π»ΡΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΠ°Ρ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π² ΠΊΠ°ΠΊΠΈΡ β ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈ Ρ.Π΄.
Π ΡΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠ΅ ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ· ΡΡΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ².
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΎΡ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ Ρ ΡΡ-ΡΠ°Π±Π»ΠΈΡ. ΠΡΠΎ Π΄Π°Π΅Ρ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ O(1) Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ, ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΆΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΠΎΡΠΊΠ°Π· ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΡΠ΅Π²Π°Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π²ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°:
ΠΡΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ Ρ ΡΠ°Π½ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. ΠΠ°ΡΡΠΈΠ²Ρ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ Π·Π°ΠΏΠ°ΡΠΎΠΌ, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ.
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ Entry, Β«ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΠ°ΡΒ» ΠΊΠ°ΠΆΠ΄ΡΡ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π·Π½Π°ΡΠΈΠΌΡΠΉ ΡΠΈΠΏ:
Π’ΠΎ Π΅ΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΠΊΡΡΠ΅, ΠΎΠ½Π° ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΡΠΎ Π΅ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ _entries. ΠΡΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ConcurrentDictionary, Π³Π΄Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΡΡΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΡΡΠ»ΠΎΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ. ΠΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ½ΠΈΠΆΠ°ΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΏΠ°ΠΌΡΡΡ (Π²Π΅Π΄Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π² 64 ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ 16 Π±Π°ΠΉΡ Π½Π° ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ 8 Π±Π°ΠΉΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΡΡΠ»ΠΊΡ) ΠΈ Π½Π° ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° Π°Π½Π°Π»ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠ΅Π»ΠΊΠΈΡ ΠΈ ΠΏΠΎ ΡΡΡΠΈ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² _entries ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Dictionary Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ 85000 Π±Π°ΠΉΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡ Π² ΠΊΡΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² LOH (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠ»ΡΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄ΡΡ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠΎ Π΄Π»Ρ 64 ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΎ ΡΠ»ΡΡΠΈΡΡΡ ΠΏΡΠΈ 3372 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈ ΠΏΡΠΈ 1932). ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΡΡΠ° Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΡΡΠΎ Π²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Microsoft Π½Π΅ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ _entries Π½Π° ΡΠ΅ΡΡΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΠΌ Entry? ΠΡΠΎ Π±Ρ ΠΎΡΠ΄Π°Π»ΠΈΠ»ΠΎ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Ρ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΡ Π² LOH ΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π½Π°ΡΠΈΡΡ ΡΠ½ΠΈΠ·ΠΈΠ»ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ (ΡΠ²Π΅Π»ΠΈΡΠΈΠ², ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠ°ΡΡΠΎΡΡ ΡΠ±ΠΎΡΠΎΠΊ ΠΌΡΡΠΎΡΠ°). ΠΠΈΠ΄ΠΈΠΌΠΎ, ΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ, ΡΡΠΎ Π²ΡΠΈΠ³ΡΡΡ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π²Π΅Π»ΠΈΠΊ.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 12 Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ (4 Π±Π°ΠΉΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ _buckets ΠΈ ΠΏΠΎ 4 Π±Π°ΠΉΡΠ° Π½Π° ΠΏΠΎΠ»Ρ hashCode ΠΈ next ΡΡΡΠ½ΠΎΡΡΠΈ Entry). Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡ Π΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 12ΠΠ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΡ ΠΎΠ΄Π° ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π»ΠΈ ΡΡΠΈΠΌ Π²ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡΡ? ΠΠ΅Ρ.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Dictionary Π²ΡΠ΅Π³Π΄Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π΅ΡΠ΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ½Π°ΡΠ΅ Π½ΠΈ ΠΎ ΠΊΠ°ΠΊΠΎΠΉ Π±ΡΡΡΡΠΎΠΉ Π²ΡΡΠ°Π²ΠΊΠ΅ Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ ΠΈ ΡΠ΅ΡΠΈ. ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΈΠΏΠ° Dictionary ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ). ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° β Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ (ΡΠΈΠ½ΠΈΠΉ ΡΠ²Π΅Ρ). ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡ 500 ΡΡΡ. Π΄ΠΎ 13 ΠΌΠ»Π½. Π‘Π»ΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΡΠ°ΡΡΠΎΠ²ΡΡ Π΅ΠΌΠΊΠΎΡΡΡ 500 ΡΡΡ.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°ΡΡΠ°ΡΠ½Π°. ΠΡΠ»ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΎΡΡ, ΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΡΠ΄Π²ΠΎΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π΅ΠΌΠΊΠΎΡΡΡ, ΡΡΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ Π½Π°Π±Π΅ΡΠ΅ΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ Π΅ΠΌΠΊΠΎΡΡΠΈ _buckets ΠΈ _entries ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ ΠΈ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ ΠΈΠ· ΡΡΠ°ΡΡΡ
ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π² Π½ΠΎΠ²ΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠ°ΡΡΠ΅ Β«ΠΎΡΠΏΡΡΠΊΠ°ΡΡΡΡΒ», ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°. ΠΠ»Ρ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ°ΠΊΠΎΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ Π² LOH, ΡΡΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°Π»Π»ΠΎΡΠΈΡΠΎΠ²Π°Π»ΠΎ ΡΡΠΌΠΌΠ°ΡΠ½ΠΎ 746ΠΠ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΎ 3 ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΈ.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠ½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ:
Π ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π° ΡΠ°ΠΊΠΎΠ³ΠΎ Π²Π·ΡΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°?
Π ΠΈΡΠΎΠ³Π΅ Π·Π°ΡΡΠ°ΡΡ Π½Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ Ρ 20 Π΄ΠΎ 76 Π±Π°ΠΉΡ.
ΠΠ· ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΎΠΏΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ:
ΠΡ Π²ΡΡΡΠ½ΠΈΠ»ΠΈ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΎ ΠΆΠ΅ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ? ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ, Π³Π΄Π΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π±ΡΠ»ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ (Π½Π° 10-20-30 Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ) ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ. ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π»ΠΈ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅?
ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡΡ. ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Dictionary (int count) Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠ΅:
ΠΠ΄Π΅ΡΡ count β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°Ρ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠ΅Π΄ΠΈ ΠΊΠΎΡΠΎΡΡΡ
ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΈΡΠΊ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ΅.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΡΠ°ΡΡΠ΅Ρ ΠΎΡ 18 Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ ΠΏΡΠΈ count=10 Π΄ΠΎ 134 Π½Ρ ΠΏΡΠΈ count=190 (ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ 50 ΡΡΡ. ΡΠ°ΠΊΠΈΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²). ΠΠ°ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠΎΠΌ (Π² ΠΏΠΈΠΊΠ΅ β Π½Π° 29 Π½Ρ), Π½ΠΎ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² (Π² ΠΌΠΎΠ΅ΠΉ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΈ 150) Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΎΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ (ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΠΏΠΎΠΈΡΠΊ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΏΡΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΉ).
ΠΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΡΠΎΡΠ½Π΅Π΅, Π΄Π»Ρ Π΅Π³ΠΎ ΠΊΡΡΠ°, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π² Entry ΠΏΡΠΎΡ
ΠΎΠ΄ ΠΏΠΎ ΡΠΈΠΊΠ»Ρ Π½Π° ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ, ΠΏΠΎΠΈΡΠΊ ΡΡΠ°Π·Ρ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡΡ).
ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ (callvirt Π΄Π»Ρ GetHashCode ΠΈ Equals). Π’Π°ΠΊΠΎΠΉ Π²ΡΠ·ΠΎΠ² β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ»Π³Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΡΡΠ°ΡΠΈ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π²ΡΡΠΎΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ (generic) ΠΊΠ»ΡΡΠ° Π½Π° ΠΊΠ»ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ Π²ΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠ°ΠΊΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ.
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ .
Π― ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°: Π΅ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΠΏΡΡΠΈΠ΄Π΅ΡΡΡΠΈ ΠΈ ΠΊΠ»ΡΡ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠΎ Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°.
ΠΠΎ Π²ΡΠ΅Ρ
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠΈ.
Π’Π΅ΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Ρ Dictionary ΠΈ ConcurrentDictionary
ΠΡΠ°ΠΊ, ΠΏΠΎΠ΅Ρ Π°Π»ΠΈ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΠ°ΠΌΠΈΠΌ Dictionary, ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π».
Dictionary ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Hashtable.
ΠΠ΄Π΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ (Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ), Π»ΠΈΠ±ΠΎ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠ°Π½ΠΎ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ (3). ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°ΡΡΡΡ 2 Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ β int[] buckets ΠΈ Entry[] entries. ΠΠ΅ΡΠ²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π° ΠΎΠ½Π°, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, β ΡΠ°ΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΡΠ°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅:
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Ρ ΡΡΠΊΠΎΠ΄ Π΅Π³ΠΎ ΠΊΠ»ΡΡΠ° ΠΈ Π·Π°ΡΠ΅ΠΌ β ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ:
ΠΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π΅Ρ Π»ΠΈ ΡΠΆΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ β ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Add Π²ΡΠ±ΡΠΎΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π° ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° Π½ΠΎΠ²ΡΠΉ. ΠΡΠ»ΠΈ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ (Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΈΠΆΠ°ΠΉΡΠΈΠΌ ΠΏΡΠΎΡΡΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ).
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΠ΅ΡΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ β O(n).
ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ (ΡΠΎ Π΅ΡΡΡ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² bucketNum ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ), ΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, Π΅Π³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅, Π° ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° β Π² Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅ next.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΠ°Π½Π½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ chaining. ΠΡΠ»ΠΈ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Π²Π΅Π»ΠΈΠΊΠΎ (Π±ΠΎΠ»ΡΡΠ΅ 100 Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ), ΡΠΎ ΠΏΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ
ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Ρ
ΡΡΠΊΠΎΠ΄ΠΎΠ².
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ O(1) ΠΈΠ»ΠΈ O(n) Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΡ Π·Π°ΡΠΈΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ next Π΄ΡΡΠ³ΠΈΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΈ Π½Π΅ΠΎΡ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΠΎΠ»Π΅ freeList, Π° ΡΡΠ°ΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β Π² ΠΏΠΎΠ»Π΅ next. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ:
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ½ΠΎΠ²Π° O(1) ΠΈΠ»ΠΈ O(n) Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ.
ΠΡΡΠ³ΠΎΠ΅
Π’Π°ΠΊ ΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ 2 ΠΌΠΎΠΌΠ΅Π½ΡΠ°:
1) ΠΡΠΈ ΠΎΡΠΈΡΡΠΊΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ, Π΅Π³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π’ΠΎ Π΅ΡΡΡ, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ, Π²Ρ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΡΠΎ.
2) GetEnumerator ΠΏΡΠΎΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ entires (ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ O(1)). ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ β ΠΎΠ½ΠΈ Π²Π΅ΡΠ½ΡΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΡΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ β ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π΅ ΡΡΠΎΠΈΡ (ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΡΡΠΎ Π² Π±ΡΠ΄ΡΡΠΈΡ
Π²Π΅ΡΡΠΈΡΡ
ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ).
Π’Π°ΠΊ ΠΈ ΡΡΠΎ ΠΆΠ΅ Ρ ConcurrentDictionary?
ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π΅ΡΡΡ 2 ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² Π»ΠΎΠ± Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ β ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»ΠΎΠ²Π°ΡΡ Π² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² Π½ΠΈΡ ΠΆΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ β Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠ΅ lock, Π΄Π° ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° 1 ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³ Π±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π Microsoft ΠΏΠΎΡΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΈ Dictionary ΠΏΡΠΈΡΠ΅ΡΠΏΠ΅Π» Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π’Π°ΠΊ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΡΠ·ΠΈΠ½, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ Π½ΠΈΠΌ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°
Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠΌΠΎΠ³ Π±Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΌΠ°ΡΡΠΈΠ² entries, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΡΡΠ°Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ single linked list: volatile Entry[] m_buckets (ΠΏΠΎΠ»Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ volitale, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π° Π΄ΡΡΠ³ΠΎΠΉ Π² ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ).
Π ΠΈΡΠΎΠ³Π΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ ΡΡΠ°Π»ΠΈ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
lockNo β ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ β object[] m_locks. ΠΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠΌ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΡΠ·ΠΈΠ½Ρ Π² ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ. Π Π°Π·ΠΌΠ΅Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ConcurrencyLevel ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ_ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² * 4). Π§Π΅ΠΌ Π²ΡΡΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ, Π½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ°Π½ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π΄ΠΎΡΠΎΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (Resize, ToArray, Count, IsEmpty, Keys, Values, CopyTo, Clear). Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ lock (ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΊΠΎΡΠ·ΠΈΠ½ ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ) ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½Π°Π΄ΠΎ β ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ°ΡΡΠΈΡΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅ O(1), Π° ΡΠΆΠ΅ O(n) Π·Π° ΡΡΠ΅Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΠ²ΡΠ·Π½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ². Π§ΡΠΎΠ±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ Π½Π΅ 3, Π° 31.
ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠΎΠ±ΡΠ΅Π»ΠΈ Π²ΠΈΠ΄:
ΠΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΠΎΠΉΡΠΈ Π²Π΅ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΡΡΠΎ ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅ΡΡΡ Π»ΠΈ ΡΠΆΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡΡ ΠΈ Π΅ΡΠ»ΠΈ Π½Π΅Ρ β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ β ΡΠΏΠ΅ΡΠ²Π° Π½Π°Π΄ΠΎ Π½Π°ΠΉΡΠΈ ΡΠ·Π΅Π» ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π°Π»ΠΈΡΡ.
ΠΠΏΡΠΎΡΠ΅ΠΌ, Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ Π½ΡΠΆΠ½Π° Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ β ΡΡΠΎ TryGetValue, GetEnumerator, ContainsKey ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ. ΠΠΎΡΠ΅ΠΌΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠΎΡΠ·ΠΈΠ½ Π²ΠΈΠ΄Π½Ρ Π·Π° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅ volatile, Π»ΡΠ±ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΈΠΌ ΡΡΠ°ΡΠΎΠ³ΠΎ, Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ·Π΅Π».
ΠΡΡΠ³ΠΎΠ΅
Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ dictionary.Select(x => x.Value).ToArray(), ΡΠ΅ΠΌ dictionary.Values.ToArray()
Π ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΠΎ β Π²ΠΌΠ΅ΡΡΠΎ Β«Π»ΡΡΡΠ΅Β» ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Β«Π±ΡΡΡΡΠ΅Π΅Β» β Π·Π° ΡΡΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, Π½ΠΎ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠ½ΡΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΠ½ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
Π‘Π»ΠΎΠ²Π°ΡΠΈ Π² Python 3 β ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ
Π Python Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π‘Π»ΠΎΠ²Π°ΡΡ ( dict ) β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ ΠΏΠ°Ρ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ Python ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΌΡ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π»ΡΠ±ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΡΡ, Π½ΠΎ ΠΊΠ»ΡΡΠΈ ΠΎΠ±ΡΠ·Π°Π½Ρ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ Python:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ:
CΠ»ΠΎΠ²Π°ΡΡ, Π³Π΄Π΅ ΠΊΠ»ΡΡΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ²:
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠ²Π½ΠΎ Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ dict() :
Π‘Π»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Π½ΠΈΠ·Ρ:
Π‘Π»ΠΎΠ²Π°ΡΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ Π²Π½ΡΡΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π§ΡΠΎΠ±Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ print() ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ:
Π‘Π»ΠΎΠ²Π°ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² Π½Π΅ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡ. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΎΠ΄ΠΈΠ½ Π·Π° ΠΎΠ΄Π½ΠΈΠΌ:
ΠΠ»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±ΡΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½Ρ ΠΊΠ»ΡΡΠΈ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 0 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠΎΠΌ, Π° «Apples» β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠΌΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ. ΠΠ± ΡΡΠΎΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΡΠ»ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠ»ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
Π£Π΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΡΠ»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ:
ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ del ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΡΠ½ΠΊΡΠΈΡ pop() Ρ ΠΊΠ»ΡΡΠΎΠΌ Π·Π°ΠΏΠΈΡΠΈ Π² Π²ΠΈΠ΄Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π€ΡΠ½ΠΊΡΠΈΡ popitem() ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅. ΠΠ»Ρ Π½Π΅Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ. ΠΡΠΈΠΌΠ΅ΡΡ:
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ΅Π»ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ? ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈ Π·Π°ΠΉΠΌΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠ»ΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ del Π΄Π»Ρ ΡΠ΅Π»ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΎΠ΄ Π²Π΅ΡΠ½Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ print() ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΎΡΡΠ°Π²ΠΈΠ² Π΅Π³ΠΎ ΠΏΡΡΡΡΠΌ. ΠΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ clear() :
ΠΠΎΠ΄ Π²Π΅ΡΠ½Π΅Ρ ΠΏΡΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΆΠ΅ ΡΠ΄Π°Π»Π΅Π½Ρ.
ΠΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
ΠΠ΅ΡΠΎΠ΄ len()
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π ΡΡΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ½Π΅Ρ 3.
ΠΠ΅ΡΠΎΠ΄ copy()
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ.
ΠΠ΅ΡΠΎΠ΄ items()
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π’Π°ΠΊΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ°ΠΌΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ.
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅:
ΠΡΠ²ΠΎΠ΄ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅, ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ.
ΠΠ΅ΡΠΎΠ΄ fromkeys()
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. Π£ Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΡΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΠΊΠΎΠ΄Π΅ Π²Π²Π΅ΡΡ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠ»ΡΡΠΈ ΠΈ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ΅ΡΠΎΠ΄ fromkeys() ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅Ρ ΠΊΠ»ΡΡΠΈ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ.
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° keys ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ values Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½:
ΠΠ΅ΡΠΎΠ΄ setdefault()
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ. ΠΡΠ»ΠΈ ΠΊΠ»ΡΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠ»ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
Π£ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡΡ ΡΠΆΠ΅ Π΅ΡΡΡ:
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ «Allion» Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΎ Π½Π° ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΊΠ»ΡΡΠ° ΡΠΆΠ΅ Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄ keys()
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
Π§Π°ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅:
ΠΡΠ²ΠΎΠ΄Ρ
ΠΡΠΎ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΡ Python. ΠΠ½ΠΈ Ρ ΡΠ°Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΠΏΠ°ΡΠ°Ρ Β«ΠΊΠ»ΡΡ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β». Β«ΠΠ»ΡΡΒ» Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Β«Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β» β ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π Python ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ . Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ .
Π‘Π»ΠΎΠ²Π°ΡΠΈ Π² Python (dict)
Π£ ΠΌΠ΅ΡΡΠ½Π°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Π΄Π»Ρ ΡΠ»ΠΎΠ²Π°ΡΡ Π² ΡΠ·ΡΠΊΠ΅ Python β ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΎΠ»ΠΊΠΎΠ²ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ (ΠΊΠ»ΡΡΡ) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΡΡΡΠΎΠ΅Π½
Π‘Π»ΠΎΠ²Π°ΡΠΈ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
Π‘ΠΏΠΎΡΠΎΠ± Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ Python Π² ΠΏΠ°ΠΌΡΡΠΈ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²Π·ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ»ΠΎΠ²Π°ΡΡ Π² pycore_dict.h :
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΎΠ±Π»ΠΈΠΊΡ ΡΠ°ΠΌΠΎΠΉ C-ΡΡΡΡΠΊΡΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π² Python:
ΠΡΡ ΠΎΠ΄ΠΈΡ, ΡΡΠΎ, ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ, Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ²:
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π½ΠΈΡ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, Π° Π½Π΅ ΡΠ°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ°Π·ΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌΠΈ
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΡ
ΠΠ±ΡΡΠ²ΠΈΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Python 3 ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ±ΡΡΠ²ΠΈΠΌ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π»ΠΈΡΠ΅ΡΠ°Π» ΠΈ Π²ΡΠ²Π΅Π΄Π΅ΠΌ Π½Π° ΡΠΊΡΠ°Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°:
ΠΠΎΠΌΠΈΠΌΠΎ Π»ΠΈΡΠ΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, Π² Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ dict() :
inventory_dict = dict(right_hand=’sword’, left_hand=’shield’) inventory_dict >
Π§ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Ρ ΠΈΡΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ:
# ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΠ· Π΄Π΅ΡΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠ°Π²Π½ΡΠΌΠΈ 0 zero_array_dict = dict.fromkeys([‘a0’, ‘b0’, ‘c0’, ‘d0’], 0) zero_array_dict >
key_list = [‘marvel_hero’, ‘dc_hero’] value_list = [‘Spiderman’, ‘Flash’] superhero_dict = dict(zip(key_list, value_list)) superhero_dict >
ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π² Python
ΠΠ·Π²Π»Π΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠ»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ β ΠΎΠ±ΡΠ°ΡΠΈΠ²ΡΠΈΡΡ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎ Π΅Π³ΠΎ ΠΊΠ»ΡΡΡ:
hero_inventory = dict(strong_right_hand=’sword’, strong_left_hand=’shield +3′) what_in_right_hand = hero_inventory[‘strong_right_hand’] # ΠΈΠ»ΠΈ ΡΠ°ΠΊ: what_in_right_hand = hero_inventory.get(‘strong_right_hand’) print(what_in_right_hand) > sword
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΏΠΈΡΠΊΠΎΠ², Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΏΠΎΠ·ΠΈΡΠΈΠΉ Π² ΡΠ»ΠΎΠ²Π°ΡΡΡ Π½Π΅Ρ:
print(any_dict[1]) > Traceback (most recent call last): File «
«, line 1, in print(any_dict[1]) NameError: name ‘any_dict’ is not defined
💭 ΠΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΈ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅, Π²Π΄ΡΡΠ³ ΡΠ΅ΡΠΈΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠ»ΠΎΠ²Π°ΡΡ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΊΠ»ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
superhero_dict = <'dc_hero': 'Flash'>superhero_dict[‘dark_horse_hero’] = ‘Hellboy’ print(superhero_dict) >
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π΅Π³ΠΎ ΠΊΠ»ΡΡΡ:
superhero_dict[‘dc_hero’] = ‘Batwoman’ print(superhero_dict) >
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· ΡΠ»ΠΎΠ²Π°ΡΡ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ del :
# Π·Π°ΠΏΠΈΡΡ β’dark_horse_hero’: ‘Hellboy’β ΠΈΡΡΠ΅Π·Π½Π΅Ρ. ΠΡΠΎΡΡΠΈ, ΠΡΠ°ΡΠ½ΡΠΉ! del superhero_dict[‘dark_horse_hero’] print(superhero_dict) >
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Python
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΎΡΡΠΎΠΌΡ, Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ. ΠΠ° ΡΡΠΎ Π΄Π΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ in :
if ‘marvel_hero’ in superhero_dict: print («ΠΠ°, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡΡ Π΅ΡΡΡ») else: print(«ΠΡΠΎΡ ΠΊΠ»ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!») > ΠΠ°, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡΡ Π΅ΡΡΡ # Π·Π°ΠΏΠΈΡΡ Ρ ΠΊΠ»ΡΡΠΎΠΌ ‘dark_horse_hero’ Π±ΡΠ»Π° ΡΠ΄Π°Π»Π΅Π½Π° Π½Π°ΠΌΠΈ ΡΡΡΡ Π²ΡΡΠ΅ if ‘dark_horse_hero’ in superhero_dict: print («ΠΠ°, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»ΡΡ Π΅ΡΡΡ») else: print(«ΠΡΠΎΡ ΠΊΠ»ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!») > ΠΡΠΎΡ ΠΊΠ»ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!
💡 ΠΡΡΠ°ΡΠΈ Π³ΠΎΠ²ΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° get() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΊΠ»ΡΡΡ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π°ΠΏΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
my_hero = superhero_dict.get(‘dark_horse_hero’, ‘ΠΡΠΎΡ ΠΊΠ»ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!’) print(my_hero) > ΠΡΠΎΡ ΠΊΠ»ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ!
ΠΠ»ΠΈΠ½Π° ΡΠ»ΠΎΠ²Π°ΡΡ Π² Python
Π‘ΡΠΎΠΈΡ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ β ΡΡΠΎ Π»ΠΈΡΡ Π½Π°Π±ΠΎΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π½ΡΠΌ ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ len() :
treasure = dict(t1=’gold’, t2=’necklace’) num_of_items = len(treasure) print(num_of_items) > 2
ΠΠ΅ ΡΠ°ΠΌΠ°Ρ Π±ΠΎΠ³Π°ΡΠ°Ρ Π΄ΠΎΠ±ΡΡΠ°! 🙄
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΡΠ»ΠΎΠ²Π°ΡΡ
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠ°Ρ, ΡΠΎ ΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ.
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π Π²ΠΎΡ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ:
👉 ΠΠ΄Π΅ΡΡ ΡΡΠΎΠΈΡ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ, ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅, Π·Π°ΠΏΠΈΡΡ sorted(elements.items(), key= lambda x: x[1]) Π±ΡΠ΄Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π½Π΅ ΡΠ»ΠΎΠ²Π°ΡΡ, Π° ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΠΎΡΡΠΎΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ:
ΠΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π² Python
ΠΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅Π»ΠΈΠΊΠΎΠΉ ΡΠ°ΠΉΠ½ΠΎΠΉ ΠΈ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ, ΠΏΠΎ ΡΡΡΠΈ ΡΠ²ΠΎΠ΅ΠΉ, Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΠ°Ρ (Ρ.Π΅. ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ), ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΊΠΈ ΠΈΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² β ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ:
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
ΠΠΎΠ³Π΄Π° Π·Π°Ρ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΡ ΠΎΠ± ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π΄Π²ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ, ΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΏΠ°ΡΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΈΠΏΠ° «ΡΠ»ΠΎΠ²Π°ΡΡ» ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ «+»Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½. ΠΡΠΈΡΠΈΠ½Π° ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΉ β ΡΡΠΎΠΈΡ Π»ΠΈΡΡ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ Π½Π°Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠ°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠΈΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ «+». ΠΠΎΡΡΠΎΠΌΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ:
dict_1 = <'010120': 55000, '030420': 8500, '170420': 30000>dict_2 = <'050520': 2900, '160520': 16573>print(dict_1 + dict_2) Traceback (most recent call last): File «test.py», line 4, in print(dict_1 + dict_2) TypeError: unsupported operand type(s) for +: ‘dict’ and ‘dict’
💭 ΠΡΠ»ΠΈ Π±Ρ showcase_2 ΡΠΎΠ΄Π΅ΡΠΆΠ°Π» ΠΊΠ»ΡΡΠΈ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ Π² showcase_1, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ ΡΡΠΈΠΌΠΈ ΠΊΠ»ΡΡΠ°ΠΌΠΈ, Π² ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π±ΡΠ»ΠΈ Π±Ρ Π²Π·ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· showcase_2.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ»ΠΎΠ²Π°ΡΡ, Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π±ΡΠ²Π°ΡΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡ , Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΠΌΡΡ , Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, Π½Π° Π΅Π³ΠΎ ΠΊΠ»ΡΡΠΈ.
ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Π² Python
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½ΡΡ .
# clear() farewell_dict = <'a': 'word', 'b': 3, 'c': 'x', 'd': 1, 'e': 12>farewell_dict.clear() print(farewell_dict) > <> # get() seasons = <'winter': 'cold', 'summer': 'hot', 'autumn': 'cold'>print(seasons.get(‘winter’, ‘Π’Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅ Π½Π΅Ρ’)) > cold seasons_2 = <'spring': 'warm'>print(seasons_2.get(‘nonexistent_key’, ‘ΠΡΠΎΡ ΠΊΠ»ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ’)) > ΠΡΠΎΡ ΠΊΠ»ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ seasons_3 = <'winter': 'surprice_warm'>print(seasons_3.get(‘nonexistent_key’)) > None # items() pairs_dict = <'41': 41, '42': 42, '43': 43>print(pairs_dict.items()) > dict_items([(’41’, 41), (’42’, 42), (’43’, 43)]) # keys() promo_dict = <'modelA': 100000, 'modelB': 300000, 'modelC': 120000>print(promo_dict.keys()) > dict_keys([‘modelA’, ‘ modelB’, ‘modelC’]) # values() palette = <'color1': 'red', 'color2': 'white', 'color3': 'purple'>print(palette.values()) > dict_values([‘red’, ‘white’, ‘purple’]) # pop() id_dict = <'Alex': 101546, 'Rachel': 116453, 'Johanna': 144172>print(id_dict.pop(‘Alex’)) > 101546 print(id_dict) > <'Rachel': 116453, 'Johanna': 144172># ΠΠ»ΡΡ, ΡΠ°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠ»ΠΎΠ²Π°ΡΠ΅. # popitem() another_dict = <'t': 16, 'g': 53, 'y': 112, 'h': 23>print(another_dict.popitem()) > (‘h’, 23) print(another_dict) > <'t': 16, 'g': 53, 'y': 112># update() first_dictionary = <'p': 55, 'o': 44, 'i': 33>second_dictionary = <'l': 22, 'k': 11, 'p': 'changed'>first_dictionary.update(second_dictionary) print(first_dictionary) > <'p': 'changed', 'o': 44, 'j': 33, 'l': 22, 'k': 11># copy() some_dict = <'z': 1, 'x': 3, 'v': 12, 'n': 33>copy_dict = some_dict.copy() print(copy_dict) >
ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Python-ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠΈΠΏΠ°ΠΌ
dict to json
Π§ΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π² json ΡΠΎΡΠΌΠ°Ρ, ΡΠΏΠ΅ΡΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ json:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΡ ΠΎΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°:
dict to list
medicine_chest = dict(top_part=’potion’, bot_part=’bandage’) medicine_list = [] for key, con in medicine_chest.items(): temp = ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΄ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ dictionary medicine_list.append(temp) print(medicine_list) > [[‘top_part’, ‘potion’], [‘bot_part’, ‘ bandage’]]
dict to string
food_machine = dict(tier_1=’juice’, tier_2=’chocolate’) f_machine_str = str(food_machine) print(f_machine_str) >
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ
Π Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ². ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΈΠΊΠ», ΠΎΡΠ±ΠΈΡΠ°ΡΡ key:value ΠΏΠ°ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½ΠΎΠ²ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ, Π³Π΄Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΡΠ΄Π° Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΈΡ ΠΊΠ²Π°Π΄ΡΠ°ΡΡ:
Π’Π°ΠΊΠΆΠ΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΡΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΠ΅ΠΉ:
list_of_keys = [‘q’, ‘w’, ‘e’, ‘r’, ‘t’] generated_dict =
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ
ΠΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ:
# Π³Π΄Π΅-ΡΠΎ ΡΠ»ΡΠ±Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Xzibit nesting_d = <'fk': <'input_lvl_one': <'input_lvl_two': 42>>> print(nesting_d[‘fk’][‘input_lvl_one’][‘input_lvl_two’]) > 42
💭 Π§ΠΈΡΠ»ΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎ!
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΡΠ»ΠΎΠ²Π°ΡΡΠΌ
OrderedDict
defaultdict
Counter
Counter β ΠΏΠΎΠ΄ΡΠΈΠΏ ΡΠ»ΠΎΠ²Π°ΡΡ, ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΈ Ρ ΡΠ°Π½ΡΡΠΈΠΉ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Counter() ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΈ ΡΠ²ΠΎΠΈΠΌΠΈ Π½Π΅Π±Π΅Π·ΡΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ:
ΠΠ°Π²Π΅ΡΠ½ΠΎ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΈ ΡΠΏΠΈΡΠΊΠΈ (ΠΎ ΠΊΠΎΡΠΎΡΡΡ , ΠΊΡΡΠ°ΡΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ » Π‘ΠΏΠΈΡΠΊΠΈ Π² Python «) ΡΡ ΠΎΠΆΠΈ ΠΊΠ°ΠΊ, Π²Π½Π΅ΡΠ½Π΅, ΡΠ°ΠΊ ΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΠΎΠ±ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΈ ΡΠΏΠΈΡΠΊΠΈ ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠΈ β ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎΠ²ΠΎΡΠΈΡΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠ°Π·Π»ΠΈΡΠ½Ρ. Π Π°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΠΎΠ½ΠΈ Π΅ΡΡ ΠΈ ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ, Π° Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡΠΌ. Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, ΠΎΠ±Π° ΡΠΈΠΏΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π²Ρ ΠΎΠ΄ΡΡ Π² ΡΠΈΡΠ»ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΠΈ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π² ΡΠ·ΡΠΊΠ΅ Python.