Найти Π² Π”Π·Π΅Π½Π΅

🐍 Π£Ρ€ΠΎΠΊΠΈ Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… | #10 β€” Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ (dict), Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ β€” малСнькиС ΡˆΠΊΠ°Ρ‚ΡƒΠ»ΠΊΠΈ с чудСсами

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ, ΠΌΠΎΠΉ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ, β€” это Π½Π΅ просто структура Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ ящик Π² мастСрской: Ρ‡Ρ‚ΠΎ полоТишь, Ρ‚ΠΎ ΠΈ Π½Π°ΠΉΠ΄Ρ‘ΡˆΡŒ. Волько вмСсто Π³Π²ΠΎΠ·Π΄Π΅ΠΉ ΠΈ ΠΎΡ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠΊ β€” ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ значСния. И ΠΏΡƒΡΡ‚ΡŒ Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ свой ΠΏΡƒΡ‚ΡŒ Π² Python, Π½Π΅ бойся β€” всё Π½Π΅ Ρ‚Π°ΠΊ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ. Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ β€” это ассоциативныС массивы, Π½ΠΎ, скаТу чСстно, Π·Π²ΡƒΡ‡ΠΈΡ‚ это чСрСсчур ΡƒΠΌΠ½ΠΎ. А Π½Π° Π΄Π΅Π»Π΅ β€” простая, родная ΡˆΡ‚ΡƒΠΊΠ°. Π₯ΠΎΡ‡Π΅ΡˆΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ имя Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°? Π”Π° запросто: python person = {"Π½Π΅ΠΉΠΌ": "Π΄ΠΆΠΎΡ€Π΄ΠΆ, ΠΈΠ²Π°Π½"} Π’ΠΎΡ‚ ΠΈ всё. НС индСкс ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Π°ΠΌ ноль, Π° прямо β€” ΠΏΠΎ-чСловСчСски. НСйм β€” ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π±Π΅Π· плясок. Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±ΡƒΡ‚Π΅Ρ€Π±Ρ€ΠΎΠ΄ Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ β€” Π½Π° Π²Ρ‹Π±ΠΎΡ€, ΠΏΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ. Π―, старый Ρ€ΠΎΠΌΠ°Π½Ρ‚ΠΈΠΊ, Ρ‡Π°Ρ‰Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ способом: Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. python ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ = {"тСст": 1, "тСст2": "суп"} Π’Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ пустяк, Π° ΠΊΠ°ΠΊ ΡƒΡŽΡ‚Π½ΠΎ смотрится, согласись? Π£ΠΆΠ΅ посолиднСС. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ Ссли вмСсто Π»ΠΎΠΆΠΊΠΈ Π²Π·ΡΡ‚ΡŒ Π²ΠΈΠ»ΠΊΡƒ β€” Ρ‡ΡƒΡ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅, Π½ΠΎ Π΄Π΅Π»ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚: python Π΅Π΄Π° = dict(ΡˆΠΎΡ€Ρ‚="Π΄ΠΈΠΊΡ‚", Π»ΠΎΠ½Π³Π΅Ρ€="dict") И Π΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² словарС β€” Ρ…ΠΎΡ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€Ρ‘ΡˆΠΊΡƒ соб
ОглавлСниС

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ, ΠΌΠΎΠΉ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ, β€” это Π½Π΅ просто структура Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ ящик Π² мастСрской: Ρ‡Ρ‚ΠΎ полоТишь, Ρ‚ΠΎ ΠΈ Π½Π°ΠΉΠ΄Ρ‘ΡˆΡŒ. Волько вмСсто Π³Π²ΠΎΠ·Π΄Π΅ΠΉ ΠΈ ΠΎΡ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠΊ β€” ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ значСния. И ΠΏΡƒΡΡ‚ΡŒ Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΡˆΡŒ свой ΠΏΡƒΡ‚ΡŒ Π² Python, Π½Π΅ бойся β€” всё Π½Π΅ Ρ‚Π°ΠΊ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ.

Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ β€” это ассоциативныС массивы, Π½ΠΎ, скаТу чСстно, Π·Π²ΡƒΡ‡ΠΈΡ‚ это чСрСсчур ΡƒΠΌΠ½ΠΎ. А Π½Π° Π΄Π΅Π»Π΅ β€” простая, родная ΡˆΡ‚ΡƒΠΊΠ°. Π₯ΠΎΡ‡Π΅ΡˆΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ имя Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°? Π”Π° запросто:

python person = {"Π½Π΅ΠΉΠΌ": "Π΄ΠΆΠΎΡ€Π΄ΠΆ, ΠΈΠ²Π°Π½"}

Π’ΠΎΡ‚ ΠΈ всё. НС индСкс ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚Π°ΠΌ ноль, Π° прямо β€” ΠΏΠΎ-чСловСчСски. НСйм β€” ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π±Π΅Π· плясок.

🧰 Π§Π΅Ρ‚Ρ‹Ρ€Π΅ способа ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ словарик

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ Π² Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Π±ΡƒΡ‚Π΅Ρ€Π±Ρ€ΠΎΠ΄ Π½Π° Π·Π°Π²Ρ‚Ρ€Π°ΠΊ β€” Π½Π° Π²Ρ‹Π±ΠΎΡ€, ΠΏΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ. Π―, старый Ρ€ΠΎΠΌΠ°Π½Ρ‚ΠΈΠΊ, Ρ‡Π°Ρ‰Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ способом: Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки.

python ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ = {"тСст": 1, "тСст2": "суп"}

Π’Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ пустяк, Π° ΠΊΠ°ΠΊ ΡƒΡŽΡ‚Π½ΠΎ смотрится, согласись?

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ β€” Ρ‡Π΅Ρ€Π΅Π· dict()

Π£ΠΆΠ΅ посолиднСС. Π­Ρ‚ΠΎ ΠΊΠ°ΠΊ Ссли вмСсто Π»ΠΎΠΆΠΊΠΈ Π²Π·ΡΡ‚ΡŒ Π²ΠΈΠ»ΠΊΡƒ β€” Ρ‡ΡƒΡ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅, Π½ΠΎ Π΄Π΅Π»ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚:

python Π΅Π΄Π° = dict(ΡˆΠΎΡ€Ρ‚="Π΄ΠΈΠΊΡ‚", Π»ΠΎΠ½Π³Π΅Ρ€="dict")

И Π΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² словарС β€” Ρ…ΠΎΡ‚ΡŒ Ρ†Π΅Π»ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€Ρ‘ΡˆΠΊΡƒ собСри. ΠžΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΡˆΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, особСнно ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ΅. НапримСр:

python Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ = {
"Π½Π΅ΠΉΠΌ": {"фамилия": "Иванов", "имя": "Иван", "отчСство": "Π˜Π²Π°Π½ΠΎΠ²ΠΈΡ‡"},
"адрСс": ["Π³ΠΎΡ€ΠΎΠ΄", "ΡƒΠ»ΠΈΡ†Π°", "ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π°"],
"Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½": {"Π΄ΠΎΠΌ": "Π΄ΠΎΠΌ", "ΠΌΠΎΠ±": "ΠΌΠΎΠ±", "Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ±": "ΠΌΠΎΠ±"}
}

ΠŸΠΎΡ‡Ρ‚ΠΈ ΠΊΠ°ΠΊ паспорт с припиской ΠΈ справкой ΠΈΠ· Π–Π­ΠšΠ°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π΅Π· ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ πŸ˜„

Π’Ρ€Π΅Ρ‚ΠΈΠΉ способ β€” fromkeys()

Иногда хочСтся сразу ΠΊΡƒΡ‡ΠΊΡƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Π° значСния β€” ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π΅ΠΌ. Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ fromkeys() ΠΊΠ°ΠΊ Π½Π°Ρ…ΠΎΠ΄ΠΊΠ°:

python ΠΊΠ»ΡŽΡ‡ΠΈ = ("Π°", "Π±", "Ρ†")
Π½ΠΎΠ²Ρ‹ΠΉ = dict.fromkeys(ΠΊΠ»ΡŽΡ‡ΠΈ, 1)

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ, быстро, Π±ΡƒΠ΄Ρ‚ΠΎ Π²Π°Ρ€Π΅Π½ΠΈΠΊΠΈ Π² кипяток β€” ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎ.

И Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ способ β€” ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π»Π΅Ρ‚Ρƒ

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π΄Ρ€ΡƒΠΆΠΈΡ‚ с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ Π»ΡŽΠ±ΠΈΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ΠΎΡ‚ Ρ‚Π΅Π±Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

python ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ = {a: a**2 for a in range(7)}

И вуаля β€” словарик, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ β€” число, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Π΅Π³ΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΠΊ. ΠšΡ€Π°ΡΠΎΡ‚Π°!

πŸ” Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ с Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ?

Π”Π° всё, ΠΌΠΈΠ»Ρ‹ΠΉ Ρ‚Ρ‹ ΠΌΠΎΠΉ. Π₯ΠΎΡ‡Π΅ΡˆΡŒ β€” Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ ΠΈΠ· словаря Π²Ρ‹Ρ‚Π°Ρ‰ΠΈ:

python print(Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ["Π½Π΅ΠΉΠΌ"]["фамилия"])

Π₯ΠΎΡ‡Π΅ΡˆΡŒ β€” адрСсок собСри:

pythonprint(", ".join(Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ["адрСс"]))

А Ρ…ΠΎΡ‡Π΅ΡˆΡŒ β€” Π·Π°ΠΌΠ΅Π½ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΌΠΎΠ±ΠΈΠ»Ρ‹ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ, моднСнький:

python Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ["Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½"]["ΠΌΠΎΠ±"] = "+7-999..."

Всё просто. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” обращайся ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, ΠΊΠ°ΠΊ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π±Π΅Π· суСты.

βš™οΈ А Π΅Ρ‰Ρ‘ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹...

Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ β€” это ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π²ΠΈΠ½ΠΎ: со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Π£ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прям Π΄ΡƒΡˆΡƒ Ρ€Π°Π΄ΡƒΡŽΡ‚.

  • clear() β€” всё ΠΏΠΎΠ΄Ρ‡ΠΈΡΡ‚ΡƒΡŽ. Как Π±ΡƒΠ΄Ρ‚ΠΎ субботник ΠΏΡ€ΠΎΠ²Π΅Π»ΠΈ.
  • items() β€” Π²Π΅Ρ€Π½Ρ‘Ρ‚ Ρ‚Π΅Π±Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°.
  • keys() β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ΠΈΠΊΠΈ, Ссли Π·Π°Ρ…ΠΎΡ‡Π΅ΡˆΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΏΠΎ Π²Π΅Ρ€Ρ…Π°ΠΌ.

Π’ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠΉ нСбольшой арсСнал, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ.

πŸ“š На дСсСрт

Если Ρ‡ΡƒΠ²ΡΡ‚Π²ΡƒΠ΅ΡˆΡŒ, Ρ‡Ρ‚ΠΎ словари β€” это Ρ‚Π²ΠΎΡ‘, ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈ ΠΊΠΎ ΠΌΠ½Π΅ Π΅Ρ‰Ρ‘. Π― ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ знаю, ΠΈ Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ β€” моя ΡΠ»Π°Π±ΠΎΡΡ‚ΡŒ. А ΠΏΠΎΠΊΠ° β€” загляни Π½Π° itproger.com, Ρ‚Π°ΠΌ Π΄ΠΎΠ±Ρ€Π° Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.

И Π΄Π°, Ρƒ нас Π΅ΡΡ‚ΡŒ ΡƒΡŽΡ‚Π½Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ ΠΈ ΠΊΠ°Π½Π°Π». ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ β€” посмСёмся, поспорим, Π΄Π° ΠΈ ΠΊΠΎΠ΄ Π·Π°ΠΎΠ΄Π½ΠΎ поковыряСм 🧑

Б любовью,

Π’Π²ΠΎΠΉ Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ Python-старичок,

ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ большС ΠΆΠΈΠ·Π½ΠΈ ΠΏΡ€ΠΎΠΆΠΈΠ», Ρ‡Π΅ΠΌ Π½Π° ΠΏΠΎΠ΄ΡƒΡˆΠΊΠ΅ πŸ’»πŸ·

-2