Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками Python

Бписок Python β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ любого Ρ‚ΠΈΠΏΠ°: строки, числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ смСшанного Ρ‚ΠΈΠΏΠ°. Π’ этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ функциях списков, ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ…, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ элСмСнты, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ списки Python

Для создания списка Python Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ элСмСнты Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки:

Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

МоТно ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ содСрТимого:

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅.

ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ элСмСнту списка ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ индСкс. Π’ Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСма индСксации, начиная с нуля.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° строки.

ИзмСнСниС списка

Бписки β€” это измСняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, поэтому ΠΈΡ… элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈΡ… порядок.

Если Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ список:

Π’ΠΎ Π΅Π³ΠΎ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Если сСйчас вывСсти Π΅Π³ΠΎ Π½Π° экран, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Если индСкс β€” ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ с послСднСго элСмСнта.

Π’Ρ‹Π²ΠΎΠ΄ этого ΠΊΠΎΠ΄Π° β€” β€˜ΠΏΡΡ‚ΡŒβ€™.

ΠŸΡ€ΠΎΡ…ΠΎΠ΄ (итСрация) ΠΏΠΎ списку

Π§ΠΈΡ‚Π°Ρ‚ΡŒ элСмСнты списка ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ†ΠΈΠΊΠ»Π°:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ элСмСнты списка. А Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ касаСтся ΠΈΡ… обновлСния:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

Ѐункция len() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° количСства элСмСнтов, Π° range() β€” списка индСксов.

Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список β€” это всСгда ΠΎΠ΄ΠΈΠ½ элСмСнт Π²Π½Π΅ зависимости ΠΎΡ‚ количСства Π΅Π³ΠΎ элСмСнтов.

Π‘Ρ€Π΅Π· списка

МоТно ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ срСз списка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ( : ):

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΠ΄Π° Π²Ρ‹ΡˆΠ΅ β€” [‘Π΄Π²Π°’, ‘Ρ‚Ρ€ΠΈ’]

Если ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ число, ΠΎΡ‚ срСз Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта, Π° Ссли Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” с послСднСго.

Если ΡƒΠ±Ρ€Π°Ρ‚ΡŒ числа ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅, Ρ‚ΠΎ скопируСтся вСсь список.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого Π³ΠΎΠ΄Π°:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ списки измСняСмыС, ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° срСза:

Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² список

ΠœΠ΅Ρ‚ΠΎΠ΄ insert ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² список:

Π˜Π½Π΄Π΅ΠΊΡΡ‹ для вставляСмых элСмСнтов Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с нуля.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² список

ΠœΠ΅Ρ‚ΠΎΠ΄ append ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для добавлСния элСмСнта Π² список:

МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта Ρ‚Π°ΠΊΠΈΠΌ способом:

ΠŸΡ€ΠΈ этом list_2 Π½Π΅ помСняСтся.

ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список

ΠŸΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ список

МоТно Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ порядок элСмСнтов Π² спискС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° reverse :

ИндСкс элСмСнта

ΠœΠ΅Ρ‚ΠΎΠ΄ index ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния индСкса элСмСнта:

Если Π² спискС большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ элСмСнта, функция Π²Π΅Ρ€Π½Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ.

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт ΠΌΠΎΠΆΠ½ΠΎ, написав Π΅Π³ΠΎ индСкс Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ pop :

Если Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ индСкс, Ρ‚ΠΎ функция ΡƒΠ΄Π°Π»ΠΈΡ‚ послСдний элСмСнт.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ del ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ†Π΅Π»Π΅ΠΉ:

МоТно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ нСсколько элСмСнтов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° срСза:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ

Π’ Python Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

sum() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с числовыми значСниями.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ списки

Π’ Python 2 ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ элСмСнты Π΄Π²ΡƒΡ… списком ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cmp :

Π’ Python 3 для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ( == ):

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° списках:

Для объСдинСния списков ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ( + ):

Бписок ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° умноТСния:

Бписки ΠΈ строки

Для ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ строки Π² Π½Π°Π±ΠΎΡ€ символов, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list :

Ѐункция list ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ строку Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ символы.

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ split для разбития строки Π½Π° слова:

Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ список, Π³Π΄Π΅ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ словом ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· индСкс.

Π‘ΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ разбития ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ любой Π·Π½Π°ΠΊ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ±Π΅Π».

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½:

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ список Π² строку

ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ процСсс β€” объСдинСниС элСмСнтов списка Π² строку.

Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° join :

Алиасинг (псСвдонимы)

Когда Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚:

Алиасинг Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ссылаСтся большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ измСняСмыС списки:

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

β„–9 Бписки (list) / Π£Ρ€ΠΎΠΊΠΈ ΠΏΠΎ Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

Π’ языкС программирования Python сущСствуСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… для хранСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ:

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ свойства ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ². Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ смысл, ΠΈ это Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ эффСктивности ΠΈΠ»ΠΈ бСзопасности.

Бписки

Бписки это упорядочСнная ΠΈ измСняСмая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π’ Python списки Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках.

Доступ ΠΊ элСмСнтам списка

Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ доступ ΠΊ элСмСнтам списка, ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° Π½ΠΎΠΌΠ΅Ρ€ индСкса.
Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт списка:

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта, ΡΡΡ‹Π»Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° Π½ΠΎΠΌΠ΅Ρ€ индСкса.
ΠŸΠΎΠΌΠ΅Π½ΡΠΉΡ‚Π΅ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт:

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ списку

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ элСмСнтам списка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for
Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ всС элСмСнты Π² спискС, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ:

Π£Π·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ†ΠΈΠΊΠ»Π΅ for Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΠ² Ρ€Π°Π·Π΄Π΅Π» Python Ρ†ΠΈΠΊΠ» for.

Π”Π»ΠΈΠ½Π° списка

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ сколько элСмСнтов списка Ρƒ вас Π΅ΡΡ‚ΡŒ, ΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ len()
Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ число элСмСнтов Π² спискС:

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² ΠΊΠΎΠ½Π΅Ρ† списка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ append()

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ insert() :

Π’ΡΡ‚Π°Π²ΡŒΡ‚Π΅ элСмСнт Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ:

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов

БущСствуСт нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² удалСния элСмСнтов списка
ΠœΠ΅Ρ‚ΠΎΠ΄ remove() удаляСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты:

ΠœΠ΅Ρ‚ΠΎΠ΄ pop() удаляСт элСмСнт ΠΏΠΎ индСксу (ΠΈΠ»ΠΈ послСдний элСмСнт, Ссли индСкс Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ:

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово del удаляСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ индСкс:

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово del ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ список:

ΠœΠ΅Ρ‚ΠΎΠ΄ clear() ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ список:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ list()

Π’Ρ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ конструктор list() для создания списка.

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

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² списков:

Π£ 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

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

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

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

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Python list

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Laurent Luce ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками Π² CPython. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ программистам Π½Π° Python, Π»ΠΈΠ±ΠΎ готовящимся ΠΊ собСсСдованию. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ C ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π² сокращСнном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΈ с ΠΌΠΎΠΈΠΌΠΈ коммСнтариями. ΠŸΠΎΠ»Π½Ρ‹ΠΉ тСкст Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² исходниках CPython 2.7.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ описываСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° списка Π² CPython, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Python. Бписки Π² Python β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΈ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ устроСны Π²Π½ΡƒΡ‚Ρ€ΠΈ. ВзглянитС Π½Π° простой скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСт нСсколько Ρ†Π΅Π»Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² список ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ…:

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, список являСтся ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

C-структура ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° списка

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ списка Π² CPython прСдставлСн Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структурой Π² C. ob_item β€” это список ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° элСмСнты списка, allocated β€” количСство Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ списка

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ создании пустого списка, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ l = []. ВызываСтся функция PyList_New(0):

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ списка. Π Π°Π·ΠΌΠ΅Ρ€ списка β€” это Ρ‚ΠΎΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ len(l). allocated β€” это количСство Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° списка. Π­Ρ‚ΠΎ дСлаСтся для прСдотвращСния Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² realloc ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ элСмСнтов. ΠœΡ‹ разбСрСмся Π² этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов

ΠœΡ‹ добавляСм Ρ†Π΅Π»ΠΎΠ΅ число Π² список: l.append(1). Π§Ρ‚ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ происходит? ВызываСтся функция C PyList_Append(), которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ app1():

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list_resize(). Она выдСляСт большС памяти, Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ для прСдотвращСния частых Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² list_resize. Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти задаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ: 0, 4, 8, 16, 25, 35, 46, 58, 72, 88, …

4 ячСйки сСйчас Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ для элСмСнтов списка ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… β€” это Ρ†Π΅Π»ΠΎΠ΅ число 1. На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ l[0] ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ†Π΅Π»ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² список. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ прСрывистой Π»ΠΈΠ½ΠΈΠ΅ΠΉ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ, Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ добавлСния элСмСнта Π² список ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ O(1).

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список

Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт Π² список: l.append(2). list_resize вызываСтся с n+1 = 2, Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти 4, Π½Π΅Ρ‚ нСобходимости Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π’ΠΎ ΠΆΠ΅ самоС ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π΅Ρ‰Π΅ Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл: l.append(3), l.append(4). На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π² ΠΈΡ‚ΠΎΠ³Π΅:

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список

Вставка

Вставим Π½ΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ 1: l.insert(1,5) ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. ВызываСтся функция ins1():

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ прСрывистой Π»ΠΈΠ½ΠΈΠ΅ΠΉ, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ, Π½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π˜Ρ‚Π°ΠΊ, 8 ячССк Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ, Π½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка Ρƒ нас сСйчас 5.

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вставки O(n).

Π’Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π½ΠΈΠ΅

Когда Π²Ρ‹ Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ элСмСнт ΠΈΠ· списка, l.pop(), вызываСтся listpop(). list_resize вызываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ listpop() ΠΈ Π² случаС, Ссли Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ мСньшС ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти β€” Ρ‚ΠΎ список сТимаСтся.

Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ O(1).

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ 4 ячСйка всС Π΅Ρ‰Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ†Π΅Π»ΠΎΠ΅, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка Ρƒ нас 4.

Π’Ρ‹Ρ‚ΠΎΠ»ΠΊΠ½Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт. Π’ list_resize(), size-1 = 4-1 = 3 мСньшС Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ячССк, поэтому список сТимаСтся Π΄ΠΎ 6 ячССк ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка становится 3.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ 3 ΠΈ 4 ячСйка всС Π΅Ρ‰Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ†Π΅Π»ΠΎΠ΅, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка Ρƒ нас 3.

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

Бписки(list) Π² Python – ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Python состоит ΠΈΠ· ΡˆΠ΅ΡΡ‚ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ являСтся список.

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

Бписки Π² Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. Бписок опрСдСляСтся ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ элСмСнтов Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π² спискС Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятой(,) ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки []. Бписки ΡΠ²Π»ΡΡŽΡ‚ΡΡ измСняСмым Ρ‚ΠΈΠΏΠΎΠΌ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ элСмСнт послС Π΅Π³ΠΎ создания.

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

Если ΠΌΡ‹ попытаСмся Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ L1, L2 ΠΈ L3 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ type(), Ρ‚ΠΎ получится список.

Π₯арактСристики списков

Бписок ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ характСристики:

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ списки упорядочСны.

Оба списка состояли ΠΈΠ· ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ элСмСнтов, Π½ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ список ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ индСкса 5-Π³ΠΎ элСмСнта, Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ порядок списков. ΠŸΡ€ΠΈ сравнСнии списков возвращаСтся false.

Бписки ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ порядок элСмСнтов Π½Π° протяТСнии всСго сущСствования. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ это упорядочСнный Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ списка.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали списки, состоящиС ΠΈΠ· свСдСний ΠΎ сотрудниках ΠΈ ΠΎΡ‚Π΄Π΅Π»Π°Ρ…, ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ списка.

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ расщСплСниС списка

Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ выполняСтся Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ со строками. Доступ ΠΊ элСмСнтам списка ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° slice[].

ИндСкс начинаСтся с 0 ΠΈ увСличиваСтся Π½Π° 1. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт списка сохраняСтся Π² 0-ΠΌ индСксС, Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт списка сохраняСтся Π² 1-ΠΌ индСксС ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ подсписок списка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список. Π€ΠΎΡ‚ΠΎ Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ Π² список

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ для доступа ΠΊ элСмСнтам списка.

Как ΠΌΡ‹ обсуТдали Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ пСрвая инструкция ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π²Π΅Ρ€Π½ΡƒΠ»Π° самый ΠΏΡ€Π°Π²Ρ‹ΠΉ элСмСнт списка. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π²Π΅Ρ€Π½ΡƒΠ» подсписок ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ОбновлСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка

Бписки ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ структурами Π΄Π°Π½Π½Ρ‹Ρ… Π² Python, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ измСняСмы, Π° ΠΈΡ… значСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° slice ΠΈ assignment.

Python Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ append() ΠΈ insert(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для добавлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² список.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ значСния Π²Π½ΡƒΡ‚Ρ€ΠΈ списка.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ списка Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова del. Python Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π½Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ remove(), Ссли ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ элСмСнт Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· списка.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты списка.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со списком Python

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ concatenation(+) ΠΈ repetition(*) Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ со строками.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ список Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠŸΡ€ΠΈΠΌΠ΅Ρ€
repetitionΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ повторСния позволяСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ элСмСнты списка нСсколько Ρ€Π°Π·.
concatenationОн ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ список, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ ΠΎΠ±Π΅ стороны ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.
MembershipΠ’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ истину, Ссли ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ элСмСнт сущСствуСт Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ спискС, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС – лоТь.
IterationΠ¦ΠΈΠΊΠ» for ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов списка.
LengthΠ˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния Π΄Π»ΠΈΠ½Ρ‹ списка

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ списка

Бписок ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for – in. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ список, содСрТащий Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² список

Python прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ append(), которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для добавлСния элСмСнта Π² список. Однако функция append() ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Π΅Ρ† списка.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ элСмСнты списка Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ список Π½Π° консоль.

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

Python прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ remove(), которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния элСмСнта ΠΈΠ· списка. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ эту ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ.

ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Python прСдоставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ со списками.

SNΠ€ΡƒΠ½ΠΊΡ†ΠΈΡΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠŸΡ€ΠΈΠΌΠ΅Ρ€
1cmp(list1, list2)Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Π΅Ρ‚ элСмСнты ΠΎΠ±ΠΎΠΈΡ… списков.Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Python 3 ΠΈ Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… вСрсиях.
2len(list)Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для расчСта Π΄Π»ΠΈΠ½Ρ‹ списка.
3max(list)Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт списка.
4min(list)Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт списка.
5list(seq)ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π»ΡŽΠ±ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² список.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² списков.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: 1- НапишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для удалСния ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ элСмСнта списка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: 2- НапишСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ сумму элСмСнтов Π² спискС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: 3- ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для поиска списков, состоящих ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ элСмСнта.

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

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

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