Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ append Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

6. Бписки

Бписок β€” это ΠΎΡ‡Π΅Π½ΡŒ удобная структура Π΄Π°Π½Π½Ρ‹Ρ…, которая ΡƒΠΌΠ΅Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π•Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ словарСй Ρƒ списков Π΅ΡΡ‚ΡŒ индСксный порядок. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² спискС ΠΈΠΌΠ΅Π΅Ρ‚ индСкс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ помСняСтся, Ссли Π΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’ случаС Π΄Ρ€ΡƒΠ³ΠΈΡ… структур, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ словари, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅. НапримСр, Ρƒ словарСй Π½Π΅Ρ‚ индСксов для ΠΈΡ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, поэтому нСльзя просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт, вСдь Ρ‚Π°ΠΊΠΎΠ³ΠΎ порядка Π½Π΅ сущСствуСт. Π­Ρ‚Ρƒ структуру Π΄Π°Π½Π½Ρ‹Ρ… стоит Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ мСшок ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ Π±Π΅Π· ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ порядка.

Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ: Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ индСксация списков начинаСтся с 0 (нуля). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π² спискС Π½Π° самом Π΄Π΅Π»Π΅ являСтся Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π² ΠΌΠΈΡ€Π΅ Python. Об этом ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ.

Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ: списки ΡΠ²Π»ΡΡŽΡ‚ΡΡ измСняСмым Ρ‚ΠΈΠΏΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΈΡ… элСмСнты. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ?

Бписки β€” распространСнная структура Π΄Π°Π½Π½Ρ‹Ρ… Π² Python. Они ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для самых Ρ€Π°Π·Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.

ΠœΠ΅Ρ‚ΠΎΠ΄Π”Π΅ΠΉΡΡ‚Π²ΠΈΠ΅
.append()ΠΌΠ΅Ρ‚ΠΎΠ΄ для добавлСния элСмСнтов Π² список
.insert()для добавлСния элСмСнтов Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ мСсто Π² спискС
.index()для получСния индСкса элСмСнта
.clear()для очистки списка
.remove()для удалСния элСмСнта списка
.reverse()Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ список Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС
.count()для подсчСта количСства элСмСнтов Π² спискС
sum()для слоТСния элСмСнтов списка
min()ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ элСмСнт с самым Π½ΠΈΠ·ΠΊΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² спискС
max()элСмСнт с самым высоким Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² спискС

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со списками

Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΠ΄Π΅Ρ‚ список, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ значСния Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π½ΡŽΠ°Π½ΡΡ‹ списков. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Бписки (list). Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков

БСгодня я расскаТу ΠΎ Ρ‚Π°ΠΊΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ списки, опСрациях Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…, ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… списков ΠΈ ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ списков.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ списки?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ списки, ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ список ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ любой ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, строку) встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ list:

Бписок ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°:

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, список ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ любоС количСство Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π² Ρ‚ΠΎΠΌ числС ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки), ΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТная конструкция Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° списков:

Но Π² слоТных случаях Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ списков.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ создали, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ со списком Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. Для списков доступны основныС встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков.

Π’Π°Π±Π»ΠΈΡ†Π° «ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков»

ΠœΠ΅Ρ‚ΠΎΠ΄Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚
list.append(x)ДобавляСт элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† списка
list.extend(L)Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ список list, добавляя Π² ΠΊΠΎΠ½Π΅Ρ† всС элСмСнты списка L
list.insert(i, x)ВставляСт Π½Π° i-Ρ‹ΠΉ элСмСнт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x
list.remove(x)УдаляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π² спискС, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x. ValueError, Ссли Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта Π½Π΅ сущСствуСт
list.pop([i])УдаляСт i-Ρ‹ΠΉ элСмСнт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ. Если индСкс Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, удаляСтся послСдний элСмСнт
list.index(x, [start [, end]])Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ x (ΠΏΡ€ΠΈ этом поиск вСдСтся ΠΎΡ‚ start Π΄ΠΎ end)
list.count(x)Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство элСмСнтов со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ x
list.sort(Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ append Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅)Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ список Π½Π° основС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
list.reverse()Π Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ список
list.copy()ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚Π½Π°Ρ копия списка
list.clear()ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ список

НуТно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ строковых ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ сам список, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

И, напослСдок, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками:

Π˜Π·Ρ€Π΅Π΄ΠΊΠ°, для увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, списки Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ массивами (хотя Π² Ρ‚Π°ΠΊΠΈΡ… случаях ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ NumPy).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

БписковыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ append() ΠΈ extend(): объяснСниС Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со списками часто приходится ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… списков. Как это дСлаСтся Π² Python?

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы комбинирования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… списков. Π’ частности, ΠΌΡ‹ познакомимся с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ append() ΠΈ extend() ΠΈ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

Как Π² Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ +

Если Π²Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ:

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° append() Π² Python

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ список, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π³ΠΎ элСмСнты Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ.

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ list_2 добавился Π² ΠΊΠΎΠ½Π΅Ρ† list_1 ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π»ΠΈΠ½Π° list_1 Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ append() ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»Π°ΡΡŒ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

Но Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² list_1 Π½Π΅ список list_2 Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, Π° всС элСмСнты этого списка? ΠœΡ‹ рассмотрим, ΠΊΠ°ΠΊ это дСлаСтся, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅.

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° extend() Π² Python

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ всС элСмСнты Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ списка Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ β€” ΠΊΠ°ΠΊ ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ.

Π•ΡΡ‚ΡŒ Π»ΠΈ здСсь ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠ°ΠΌΠ½ΠΈ?

Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ списку Π½Π΅ Ρ†Π΅Π»Ρ‹ΠΉ список (ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚), Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ append() ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ списку list_1 Π±ΡƒΠ»Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True.

ΠœΠ΅Ρ‚ΠΎΠ΄ extend() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. «Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌΒ» extend() ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ добавляСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π³ΠΎ элСмСнт ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ списку.

Π˜Ρ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” это любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ элСмСнту этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Для использования с extend() годятся списки, мноТСства, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈ строки.

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² extend() ΠΈ append() со строками

Π§Ρ‚ΠΎ касаСтся Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слоТности этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΌΡ‹ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ догадываСмся, Ρ‡Ρ‚ΠΎ append() ΠΈΠΌΠ΅Π΅Ρ‚ постоянноС врСмя выполнСния, Π° врСмя выполнСния extend() ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ зависит ΠΎΡ‚ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Π˜Ρ‚ΠΎΠ³ΠΈ

НадССмся, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ append() ΠΈ extend() Π² ΠΊΠΎΠ΄Π΅ Π½Π° Python.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Бписки Π² Python: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ

Бписки Π² Python: ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

Бписки Π² Python ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой упорядочСнныС измСняСмыС Π½Π°Π±ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ 0. ΠŸΡ€ΠΈ этом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ β€” ΠΎΡ‚ Ρ†Π΅Π»Ρ‹Ρ… чисСл Π΄ΠΎ строк. Бписки ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСбС списки.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ разбСрёмся с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌΠΈ списков Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ рассмотрим ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. Если Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅ Python с нуля, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² памяти

ΠŸΡ€ΠΈ создании списка, Π² памяти рСзСрвируСтся пустая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, это Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ создания любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ содСрТимоС list ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ:

Π”ΠΎ Π·Π°ΠΌΠ΅Π½Ρ‹ элСмСнта ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ print(numbers[1]) Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 2, Π° послС Π·Π°ΠΌΠ΅Π½Ρ‹ β€” 3.

БозданиС списка в Python

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколькими способами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ пСрСчислСниСм элСмСнтов списка Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках:

ΠŸΡ€ΠΈ этом Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 0, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ print(numbers[0]) Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ 1.

Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ списков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Допустим, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ list, состоящий ΠΈΠ· чисСл ΠΎΡ‚ 1 Π΄ΠΎ 5 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ:

Π‘Ρ€Π΅Π·Ρ‹ (slice) списка

Π‘Ρ€Π΅Π·Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΠ΅ подмноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π²Π΅Ρ€Π½Ρ‘Ρ‚ список с элСмСнтами, начиная индСксом 0 ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΈ этом индСкс 2 ΠΈ Π²Ρ‹ΡˆΠ΅:

Π”Π°Π»Π΅Π΅ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ всё, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ элСмСнта Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 3:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ начиная с индСкса 1 ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ списками Python

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков Python

Index

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ совпавшСго элСмСнта. Поиск совпадСния происходит слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Count

Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ считаСт, сколько Ρ€Π°Π· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ появляСтся Π² спискС Python:

Append

ДобавляСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ†:

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ список Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ мСньшСго ΠΊ Π±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов ΠΎΡ‚ большСго ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ:

Insert

ВставляСт элСмСнт ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ индСксом:

Remove

УдаляСт ΠΏΠ΅Ρ€Π²ΠΎΠ΅ попавшССся Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ элСмСнта Π² спискС Python:

Extend

А Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ удаляСт элСмСнт Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ индСксС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ элСмСнт. Если индСкс Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ послСдний элСмСнт:

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ список Π² строку. Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ элСмСнтов ΠΏΠΈΡˆΡƒΡ‚ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π° сам список ΠŸΠΈΡ‚ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· строк:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π±ΠΎΡ‚Π° со списками (list) Π² Python

Π‘ ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ списка Π² Python ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для хранСния Π² Π½ΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Бписки ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ всСх Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ массива Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС программирования. Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка доступСн ΠΊ измСнСнию.

НиТС разбСрёмся, ΠΊΠ°ΠΊ устроСны списки, ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ 6 ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠ· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ список

Бписок (list) β€” Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для хранСния Π½Π°Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… элСмСнтов.

Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ со списком ΠΏΠΎΠΊΡƒΠΏΠΎΠΊ для ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°: Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ вносятся элСмСнты, ΠΈΡ… Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Как списки хранятся Π² памяти?

Базовая C-структура списков Π² Python (CPython) выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Когда ΠΌΡ‹ создаём список, Π² памяти ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ рСзСрвируСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, состоящий ΠΈΠ· 3-Ρ… частСй:

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ списка Ρ…Ρ€Π°Π½ΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Π½Π΅ Π½Π° сами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Python Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ элСмСнты списка Π² памяти, Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° эти элСмСнты. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, список Π² Python β€” это массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

Базовая Ρ€Π°Π±ΠΎΡ‚Π° со списками

ОбъявлСниС списка

ОбъявлСниС списка β€” самый ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π³Π»Π°Π²Π½Ρ‹ΠΉ этап Π΅Π³ΠΎ создания. Для объявлСния списка Π² Python сущСствуСт нСсколько способов.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ β„–1 : Π§Π΅Ρ€Π΅Π· Π»ΠΈΡ‚Π΅Ρ€Π°Π» (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚):

>>> elements = [1, 3, 5, 6] >>> type(elements) >>> print(elements) [1, 3, 5, 6]

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ β„–2 : Π§Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list() :

>>> elements = list() >>> type(elements) >>> print(elements) []

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создаСтся пустой список.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту списка Π² Python

НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, рассмотрСнныС Π²Ρ‹ΡˆΠ΅, ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π²Ρ‹Π±ΠΎΡ€Π° элСмСнта: Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±ΠΎΡ€ нСпосрСдствСнно Π΅Π³ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу. ИндСксом Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€, начиная с нуля.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ индСкс, рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

elements = [1, 2, 3, ‘word’]

НумСрация элСмСнтов списка Π² Python начиная с нуля

>>> elements[-4] 1 >>> elements[-1] ‘word’

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² список

Π’ списках доступно Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов. Рассмотрим ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ способ измСнСния элСмСнтов Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

>>> elements = [1, 2, 3, ‘word’] >>> elements.append(‘meow’) >>> print(elements) [1, 2, 3, ‘word’, ‘meow’]

Для простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, рассмотрим созданиС списка с нуля с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° append() :

>>> elements = [] >>> elements.append(1) >>> elements.append(‘word’) >>> elements.append(‘meow’) >>> print(elements) [1, ‘word’, ‘meow’]

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² список Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ

>>> elements = [1, 2, 4] >>> print(elements) [1, 2, 4] >>> elements.insert(2, 3) >>> print(elements) [1, 2, 3, 4]

ИзмСнСниС элСмСнтов списка

ИзмСнСниС элСмСнтов списка происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ элСмСнт ΠΏΠΎ индСксу (порядковому Π½ΠΎΠΌΠ΅Ρ€Ρƒ элСмСнта) ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

>>> elements = [2, 4, 6] >>> elements[2] = 8 >>> print(elements) [2, 4, 8]

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ 6 Π½Π° 8.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ счёт начинаСтся с нуля, ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ спискС Ρ†ΠΈΡ„Ρ€Π° 6 это 2-ΠΉ элСмСнт

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· списка

>>> elements = [1, «test», 5, 7] >>> del elements[1] >>> print(elements) [1, 5, 7]

Π£Π΄Π°Π»ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ списка, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков:

>>> my_list = [«hello», «world», «!»] >>> elements = [1, my_list, «ok»] >>> del elements[1][2] >>> print(elements) [1, [‘hello’, ‘world’], ‘ok’]

МоТно ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ:

>>> elements = [2, 4, 6, 8, 12] >>> del elements[2:] # удаляСм всС элСмСнты послС 2-Π³ΠΎ элСмСнта (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) >>> print(elements) [2, 4] >>> elements = [2, 4, 6, 8, 12] >>> del elements[:3] # удаляСм всС элСмСнты Π΄ΠΎ 3-Π³ΠΎ элСмСнта >>> print(elements) [8, 12] >>> elements = [2, 4, 6, 8, 12] >>> del elements[1:3] # удаляСм ΠΎΡ‚ 1-Π³ΠΎ элСмСнта Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎ 3-Π³ΠΎ элСмСнта >>> print(elements) [2, 8, 12]

>>> elements = [2, «test», 4] >>> elements.remove(«test») >>> print(elements) [2, 4]

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ элСмСнта Π² спискС

>>> elements = [‘слон’, ‘ΠΊΠΎΡ‚’, ‘лошадь’, ‘змСя’, ‘Ρ€Ρ‹Π±Π°’] >>> if ‘ΠΊΠΎΡ‚’ in elements: print(‘meow’) meow

ОбъСдинСниС списков

>>> a = [1, 3, 5] >>> b = [1, 2, 4, 6] >>> print(a + b) [1, 3, 5, 1, 2, 4, 6] >>> hello = [«h», «e», «l», «l», «o»] >>> world = [«w», «o», «r», «l», «d»] >>> hello.extend(world) # extends Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ список, Π° дополняСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ >>> print(hello) [‘h’, ‘e’, ‘l’, ‘l’, ‘o’, ‘w’, ‘o’, ‘r’, ‘l’, ‘d’]

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ списка Python

>>> a = [1, 2, 3] >>> b = a # ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ b присваиваСтся Π½Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка a, Π° Π΅Π³ΠΎ адрСс >>> print(id(a), id(b)) 56466376 56466376 # a ΠΈ b ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ список >>> b.append(4) >>> print(a, b) [1, 2, 3, 4] [1, 2, 3, 4]

Для копирования списков ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих способов:

>>> a = [«ΠΊΠΎΡ‚», «ΡΠ»ΠΎΠ½», «Π·ΠΌΠ΅Ρ»] >>> b = a.copy() >>> print(id(a), id(b), a, b) 56467336 56467016 [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] >>> d = list(a) >>> print(id(a), id(d), a, d) 56467336 60493768 [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] >>> import copy >>> e = copy.copy(a) # >>> print(id(a), id(e), a, e) 56467336 60491304 [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] >>> f = copy.deepcopy(a) >>> print(id(a), id(f), a, f) 56467336 56467400 [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] >>> c = a[:] # ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ синтаксис >>> print(id(a), id(c), a, c) 56467336 60458408 [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’] [‘ΠΊΠΎΡ‚’, ‘слон’, ‘змСя’]

Π’Π°ΠΆΠ½ΠΎ : copy.copy(a) Π΄Π΅Π»Π°Π΅Ρ‚ повСрхностноС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ списка Π±ΡƒΠ΄ΡƒΡ‚ скопированы ΠΊΠ°ΠΊ ссылки Π½Π° Π½ΠΈΡ… (ΠΊΠ°ΠΊ Π² случаС с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ = ). Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ рСкурсивно ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всСх элСмСнтов Π² спискС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ copy.deepcopy(a)

Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ списка ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСзов. Π•ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования:

>>> a = [«ΠΊΠΎΡ‚», «ΡΠ»ΠΎΠ½», «Π·ΠΌΠ΅Ρ»] >>> b = a[2:] # с 2-Π³ΠΎ элСмСнта (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° списка >>> print(b) [‘змСя’] >>> c = a[:2] # с Π½Π°Ρ‡Π°Π»Π° списка ΠΏΠΎ 2-ΠΉ элСмСнт >>> print(c) [‘ΠΊΠΎΡ‚’, ‘слон’] >>> d = a[1:2] # с 1-Π³ΠΎ элСмСнта (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΏΠΎ 2-ΠΉ элСмСнт >>> print(d) [‘слон’] >>> a = [1, 2, 3, 4, 5, 6, 7, 8] >>> e = a[0:8:2] # c 0-Π³ΠΎ элСмСнта ΠΏΠΎ 8-ΠΉ элСмСнт с шагом 2 >>> print(e) [1, 3, 5, 7]

Π¦ΠΈΠΊΠ» ΠΏΠΎ списку

elements = [1, 2, 3, «meow»] for el in elements: print(el)

elements = [1, 2, 3, «meow»] elements_len = len(elements) i = 0 while i

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

# append >>> a = [1, 2, 3] >>> a.append(4) print(a) [1, 2, 3, 4] # extend >>> elements = [1, 2, 3, «meow»] >>> elements.extend([4, 5, «gaf»]) >>> print(elements) [1, 2, 3, ‘meow’, 4, 5, ‘gaf’] # insert >>> a = [1, 3, 4] >>> a.insert(1, 2) >>> print(a) [1, 2, 3, 4] # remove >>> elements = [1, «meow», 3, «meow»] >>> elements.remove(«meow») >>> print(elements) [1, 3, ‘meow’] # remove удаляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ # clear >>> a = [1, 2, 3] >>> a.clear() >>> print(a) [] # copy >>> a = [1, 2, 3] >>> b = a.copy() >>> print(id(a), id(b), a, b) 60458408 60491880 [1, 2, 3] [1, 2, 3] # count >>> elements = [«one», «two», «three», «one», «two», «one»] >>> print(elements.count(«one»)) 3 # index >>> elements = [«one», «two», «three», «one», «two», «one»] >>> print(elements.index(«three»)) 2 # pop >>> elements = [1, «meow», 3, «meow»] >>> elements.pop(1) # удаляСм элСмСнт с индСксом 1 ‘meow’ # pop Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт списка >>> print(elements) [1, 3, ‘meow’] >>> elements.pop() # удаляСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт списка ‘meow’ >>> print(elements) [1, 3] >>> elements.pop(-1) # удаляСм послСдний элСмСнт списка 3 >>> print(elements) [1] # reverse >>> a = [1, 2, 3] >>> a.reverse() >>> print(a) [3, 2, 1] # sort (ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ) >>> elements = [3, 19, 0, 3, 102, 3, 1] >>> elements.sort() >>> print(elements) [0, 1, 3, 3, 3, 19, 102] # sort (ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ) >>> elements = [3, 19, 0, 3, 102, 3, 1] >>> elements.sort(reverse = True) >>> print(elements) [102, 19, 3, 3, 3, 1, 0]

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки

Бписок ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²: числовыС, Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ списки. Бписок списков выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

>>> elements = [1, 2, [0.1, 0.2, 0.3]]

Для обращСния ΠΊ элСмСнту Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° индСкса: ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° индСкс Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ списка, Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” индСкс элСмСнта Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ спискС. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

>>> elements = [[«ΡΠ±Π»ΠΎΠΊΠΈ», 50], [«Π°ΠΏΠ΅Π»ΡŒΡΠΈΠ½Ρ‹», 190], [«Π³Ρ€ΡƒΡˆΠΈ», 100]] >>> print(elements[0]) [‘яблоки’, 50] >>> print(elements[1][0]) Π°ΠΏΠ΅Π»ΡŒΡΠΈΠ½Ρ‹

Π‘Ρ€Π΅Π·Ρ‹

Π‘Ρ€Π΅Π·Ρ‹ (slices) β€” это подмноТСства элСмСнтов списка. Π‘Ρ€Π΅Π·Ρƒ Π½ΡƒΠΆΠ½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ‡Π°ΡΡ‚ΡŒ списка ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ списка.

Π£ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ свой собствСнный синтаксис. ЗаписываСтся срСз Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ индСкс. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π’ этом случаС бСрётся срСз ΠΎΡ‚ Π½ΠΎΠΌΠ΅Ρ€Π° start (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) Π΄ΠΎ stop (Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ), Π° step β€” это шаг. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ start ΠΈ stop Ρ€Π°Π²Π½Ρ‹ 0, step Ρ€Π°Π²Π΅Π½ 1.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ списков

>>> c = [c * 3 for c in ‘list’] >>> print(c) [‘lll’, ‘iii’, ‘sss’, ‘ttt’]

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ взятыС ΡƒΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ слова, Π²Π²Π΅Π΄Ρ‘Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Π•ΡΡ‚ΡŒ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² примСнСния Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° списков.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° списка:

>>> nums = [i for i in range(1, 15)] >>> print(nums) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

Best Practices

ПослСдниС Π°Π±Π·Π°Ρ†Ρ‹ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π±ΡƒΠ΄ΡƒΡ‚ посвящСны Π»ΡƒΡ‡ΡˆΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ практичСских Π·Π°Π΄Π°Ρ‡, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ сталкиваСтся Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок размСщСния элСмСнтов Π² спискС ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ функция list.reverse() :

>>> elements = [1, 2, 3, 4, 5, 6] >>> elements.reverse() >>> print(elements) [6, 5, 4, 3, 2, 1]

Как пСрСвСсти список Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚?

Иногда трСбуСтся пСрСвСсти список Π² строку, Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΈΠ»ΠΈ Π² JSON. Для этого Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ вывСсти список Π±Π΅Π· скобок.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ списка Π² строку осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ join(). На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это выглядит Ρ‚Π°ΠΊ:

>>> fruits = [«ΡΠ±Π»ΠΎΠΊΠΎ», «Π³Ρ€ΡƒΡˆΠ°», «Π°Π½Π°Π½Π°Ρ»] >>> print(‘, ‘.join(fruits)) яблоко, Π³Ρ€ΡƒΡˆΠ°, ананас

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π² качСствС раздСлитСля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ запятая.

>>> elements = [[‘1’, ‘a’],[‘2’, ‘b’],[‘3’, ‘c’]] >>> my_dict = dict(elements) >>> print(my_dict)

JSON β€” это JavaScript Object Notation. Π’ Python находится встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ json для кодирования ΠΈ дСкодирования Π΄Π°Π½Π½Ρ‹Ρ… JSON. Π‘ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° json.dumps(x) ΠΌΠΎΠΆΠ½ΠΎ запросто ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ список Π² строку JSON.

>>> import json >>> json.dumps([‘word’, ‘eye’, ‘ear’]) ‘[«word», «eye», «ear»]’

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ индСкс элСмСнта Π² спискС?

>>> elements = [1, 3, 6, 9, 55] >>> print(elements.index(9)) 3

Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΅Π³ΠΎ индСкс.

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Π² спискС?

Π‘Π°ΠΌΡ‹ΠΉ простой способ β€” ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ списка ΠΊ set (мноТСству). ПослС этого останутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ посчитаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ len() :

>>> words = [«one», «two», «one», «three», «one»] >>> len(set(words)) 3

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ список Π½Π° пустоту?

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список числовых элСмСнтов с шагом

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ списка числовых элСмСнтов с шагом ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½Π΅ Ρ‚Π°ΠΊ ΠΈ часто, Π½ΠΎ ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ построСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ списка.

Π¨Π°Π³ΠΎΠΌ называСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Если шаг ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ рСвСрс массива, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ отсчёт ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ справа Π½Π°Π»Π΅Π²ΠΎ. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ выглядит список с шагом.

>>> elements = [1, 2, 3, 4, 5, 8, 9, 10, 11, 14, 20] >>> print(elements[0:11:2]) [1, 3, 5, 9, 11, 20]

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ списков:

>>> elements = [c for c in range(0, 10, 2)] # ΠΎΡ‚ 0 (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) Π΄ΠΎ 10 с шагом 2 >>> print(elements) [0, 2, 4, 6, 8]

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° языкС Python, списки Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ довольно часто. Π—Π½Π°Π½ΠΈΠ΅ основ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстро ΠΈ качСствСнно ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ 😉.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *