ΠŸΠΈΡ‚ΠΎΠ½ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ – ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple) | Python 3 для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple) | Python 3 для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

БСгодня я расскаТу ΠΎ Ρ‚Π°ΠΊΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple) ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.

ΠšΠΎΡ€Ρ‚Π΅ΠΆ, ΠΏΠΎ сути — нСизмСняСмый список.

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, Ссли Π΅ΡΡ‚ΡŒ списки?

  • Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π΄ΡƒΡ€Π°ΠΊΠ°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ ΠΎΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹Ρ… (Ρ‡Ρ‚ΠΎ ΠΏΠ»ΠΎΡ…ΠΎ), Ρ‚Π°ΠΊ ΠΈ случайных (Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ).
  • МСньший Ρ€Π°Π·ΠΌΠ΅Ρ€. Π”Π°Π±Ρ‹ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ голословным:
>>> a = (1, 2, 3, 4, 5, 6)
>>> b = [1, 2, 3, 4, 5, 6]
>>> a.__sizeof__()
36
>>> b.__sizeof__()
44
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ словаря:
>>> d = {(1, 1, 1) : 1}
>>> d
{(1, 1, 1): 1}
>>> d = {[1, 1, 1] : 1}
Traceback (most recent call last):
  File "", line 1, in
    d = {[1, 1, 1] : 1}
TypeError: unhashable type: 'list'

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ?

Π‘ прСимущСствами ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ встаСт вопрос — Π° ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ со списками.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ пустой ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:

>>> a = tuple() # Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ tuple()
>>> a
()
>>> a = () # Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°
>>> a
()
>>>

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта:

>>> a = ('s')
>>> a
's'

Π‘Ρ‚ΠΎΠΏ. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»Π°ΡΡŒ строка. Но ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ‚Π°ΠΊ? ΠœΡ‹ ΠΆΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Ρ…ΠΎΡ‚Π΅Π»ΠΈ! Как ΠΆΠ΅ Π½Π°ΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ?

>>> a = ('s', )
>>> a
('s',)

Π£Ρ€Π°! Π—Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ! ВсС Π΄Π΅Π»ΠΎ — Π² запятой. Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС скобки Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Ρ‡Π°Ρ‚, Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π·Π½Π°Ρ‡Π°Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΈΡ… находится ΠΎΠ΄Π½Π° инструкция, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, пСрСносом строк ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ мусором. ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ:

>>> a = 's',
>>> a
('s',)

Но всС ΠΆΠ΅ Π½Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°ΠΉΡ‚Π΅ΡΡŒ, ΠΈ ΡΡ‚Π°Π²ΡŒΡ‚Π΅ скобки, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° скобки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹.

Ну ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΈΠ· ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ всС Ρ‚ΠΎΠΉ ΠΆΠ΅ прСсловутой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ tuple()

>>> a = tuple('hello, world!')
>>> a
('h', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!')

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ

ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ списками, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ список (слоТСниС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° число, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ index() ΠΈ count() ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ). МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты мСстами ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

НапримСр, Π³ΠΎΡ€Π΄ΠΎΡΡ‚ΡŒ программистов Π½Π° python — ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами значСния Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

a, b = b, a

pythonworld.ru

Python. Π£Ρ€ΠΎΠΊ 8. ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple)

Π”Π°Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ посвящСн ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌ (tuple) Π² Python. ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ вопросу использования ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΒ ΠΈΡ…, Π° Π½Π΅ списки, рассмотрСны способы создания ΠΈ основныС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ. Π’Π°ΠΊΠΆΠ΅ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ Ρ‚Π΅ΠΌΡƒ прСобразования ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π² список ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (tuple) Π² Python?

ΠšΠΎΡ€Ρ‚Π΅ΠΆ (tuple) – это нСизмСняСмая структура Π΄Π°Π½Π½Ρ‹Ρ…, которая ΠΏΠΎ своСму подобию ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° список. Как Π²Ρ‹ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, Π° Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ, поТалуйста, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΡΠ΅Π΄ΡŒΠΌΡ‹ΠΌ ΡƒΡ€ΠΎΠΊΠΎΠΌ, список – это измСняСмый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π’.Π΅. Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ список a = [1, 2, 3] ΠΈ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт с 2 Π½Π° 15, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ элСмСнту списка.

>>> a = [1, 2, 3]
>>> print(a)
[1, 2, 3]
>>> a[1] = 15
>>> print(a)
[1, 15, 3]

Π‘Β ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΌ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚.ΠΊ. элСмСнты Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ нСльзя.

>>> b = (1, 2, 3)
>>> print(b)
(1, 2, 3)
>>> b[1] = 15
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    b[1] = 15
TypeError: 'tuple' object does not support item assignment

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² Python?

БущСствуСт нСсколько ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ вмСсто списков. Одна ΠΈΠ· Π½ΠΈΡ… – это ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ случайного измСнСния. Если ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ массив Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ, Π½ΠΎ ΠΏΡ€ΠΈ этом нСпосрСдствСнно ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ собираСмся, Ρ‚ΠΎΠ³Π΄Π°, это ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚ΠΎΡ‚ случай, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ придутся ΠΊΠ°ΠΊ нСльзя кстати. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ… Π² Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, ΠΌΡ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ сразу нСсколько бонусов – Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это экономия мСста. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² памяти Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСньший объСм ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со списками.

>>> lst = [10, 20, 30]
>>> tpl = (10, 20, 30)
>>> print(lst.__sizeof__())
32
>>> print(tpl.__sizeof__())
24

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… – прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связан с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС, Ρ‡Π΅ΠΌ списки (Ρ‚.Π΅. Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов ΠΈ Ρ‚.ΠΏ. Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ).Β Π’Π°ΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΊΠ»ΡŽΡ‡Π° Ρƒ словаря.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Π΅Π³ΠΎ элСмСнтами

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

Для создания пустого ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄.

>>> a = ()
>>> print(type(a))
<class 'tuple'>
>>> b = tuple()
>>> print(type(b))
<class 'tuple'>

ΠšΠΎΡ€Ρ‚Π΅ΠΆ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ содСрТаниСм создаСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ список, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСсто ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅.

>>> a = (1, 2, 3, 4, 5)
>>> print(type(a))
<class 'tuple'>
>>> print(a)
(1, 2, 3, 4, 5)

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ tuple().

>>> a = tuple((1, 2, 3, 4))
>>> print(a)
(1, 2, 3, 4)

Доступ ΠΊ элСмСнтам ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°

Доступ ΠΊ элСмСнтам ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° осущСствляСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΊ элСмСнтам списка – Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ индСкса. Но, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано – ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° нСльзя!

>>> a = (1, 2, 3, 4, 5)
>>> print(a[0])
1
>>> print(a[1:3])
(2, 3)
>>> a[1] = 3
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    a[1] = 3
TypeError: 'tuple' object does not support item assignment

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты ΠΈΠ· ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

>>> a = (1, 2, 3, 4, 5)
>>> del a[0]
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    del a[0]
TypeError: 'tuple' object doesn't support item deletion

Но ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ.

>>> del a
>>> print(a)
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    print(a)
NameError: name 'a' is not defined

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π² список ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ

На Π±Π°Π·Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список, Π²Π΅Ρ€Π½ΠΎ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅. Для прСвращСния списка Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ достаточно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ tuple().

>>> lst = [1, 2, 3, 4, 5]
>>> print(type(lst))
<class 'list'>
>>> print(lst)
[1, 2, 3, 4, 5]
>>> tpl = tuple(lst)
>>> print(type(tpl))
<class 'tuple'>
>>> print(tpl)
(1, 2, 3, 4, 5)

ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ опСрация Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ.

>>> tpl = (2, 4, 6, 8, 10)
>>> print(type(tpl))
<class 'tuple'>
>>> print(tpl)
(2, 4, 6, 8, 10)
>>> lst = list(tpl)
>>> print(type(lst))
<class 'list'>
>>> print(lst)
[2, 4, 6, 8, 10]

P.S.

Если Π²Π°ΠΌ интСрСсна Ρ‚Π΅ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Pandas

. На нашСм сайтС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅. ВсС ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pandas собраны Π² ΠΊΠ½ΠΈΠ³Π΅ β€œPandas. Π Π°Π±ΠΎΡ‚Π° с данными”.

<<< Python. Π£Ρ€ΠΎΠΊ 7. Π Π°Π±ΠΎΡ‚Π° со списками (list)Β  Β Python. Π£Ρ€ΠΎΠΊ 9. Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ (dict)>>>

devpractice.ru

созданиС ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ списку

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. К Π½ΠΈΠΌ относится: созданиС списков, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈΠ»ΠΈ словарСй. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассмотрим, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ Π² Python 3.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ

ΠšΠΎΡ€Ρ‚Π΅ΠΆ – это нСизмСнная структура Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Он ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° список, Π½ΠΎ послСдний ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ измСнСниям. Π’Π°ΠΊ, Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ элСмСнт списка, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡƒΠΊΠ°Π·Π°Π²:

b = [4, 6, 8]
print(b)
[4, 6, 8]
b[1] = 13
print(b)
[4, 13, 8]

Если ΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΡƒ, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚, Π° Π½Π° экранС появится надпись ΠΎΠ± ошибкС. БчитаСтся, Ρ‡Ρ‚ΠΎ это Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ случайно, Ρ‚Π°ΠΊ ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ. Π’Π°ΠΊΠΆΠ΅ Π² python Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠŸΡ€Π°Π²Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти Π΅Π³ΠΎ Π² список, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт. ПослС этого ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ список ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Π’Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ΅ прСимущСство ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° состоит Ρ‚Π°ΠΊΠΆΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ мСньший Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ провСряСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sizeof. Она ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π±Π°ΠΉΡ‚Π°Ρ…:

a = (2, 4, 6, 8, 10, 12)
b = [2, 4, 6, 8, 10, 12]
a.__sizeof__()
36
b.__sizeof__()
44

Из этого ΠΊΠΎΠ΄Π° Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 36 Π±Π°ΠΉΡ‚ΠΎΠ², Π° список (Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках) – 44 Π±Π°ΠΉΡ‚Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

ΠšΠΎΡ€Ρ‚Π΅ΠΆ опрСдСляСтся Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ список, ΠΎΠ΄Π½Π°ΠΊΠΎ пСрСчислСниС происходит Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ…, Π° Π½Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС, Π° ΠΈΡ… нумСрация всСгда начинаСтся с нуля. А Ρ‚ΠΎΡ‡Π½Π΅Π΅ для нСпустого ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ноль. ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ всС с ΠΊΠΎΠ½Ρ†Π° (с ΠΏΡ€Π°Π²ΠΎΠΉ стороны).

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания Π² Python ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°:

a = (1,2,3)

МоТно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

a = tuple([1,2,3])

Рассмотрим ΠΊΠΎΡ€Ρ‚Π΅ΠΆ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ индСксом:

n = ("a", "b", "с", "d", "e")
print(n[-1])

'e'

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° экранС отобразился ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π΅ с Π½Π°Ρ‡Π°Π»Π°, Π° с ΠΊΠΎΠ½Ρ†Π° элСмСнт.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ с ΠΎΠ΄Π½ΠΈΠΌ элСмСнтом, Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ запись:

a =(3,)
print(a[0])

3

НуТно ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ Ссли элСмСнт ΠΎΠ΄ΠΈΠ½, послС Π½Π΅Π³ΠΎ всС Ρ€Π°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚ΠΎΡΡ‚ΡŒ запятая.

Иногда для создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ΠΈ слуТат, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

a = tuple(i for i in range(0, 10))
print(a)

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

Π’Ρ‹ΡˆΠ΅ прСдставлСн Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ создали Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€. ПослС этого ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова tuple.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ срСзы. Если потрСбуСтся – Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ привСсти Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΡƒ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ срСз.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ срСзах описано Π½ΠΈΠΆΠ΅ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ β€œΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту”.

ИспользованиС Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌ списка.

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта Π΅ΡΡ‚ΡŒ свой индСкс. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π² Python для обращСния ΠΊ элСмСнту ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°, Π½ΡƒΠΆΠ½ΠΎ просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ индСкс. Напомним, Ρ‡Ρ‚ΠΎ счСт начинаСтся с нуля. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΊΠΎΠ΄:

b = (4, 6, 8)
print(b[0])
print(b[1])

4
6

Из ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΊΠ°ΠΊ элСмСнт, Ρ‚Π°ΠΊ ΠΈ срСз. Π’ этом случаС ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, состоящий ΠΈΠ· элСмСнтов, располоТСнных Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ срСза. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ срСза ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° элСмСнтов, Π° Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом находится ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ с индСксом 0. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

b = (5, 3.6, "ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚", 15, 'Π’')
print(b[1])
print(b[2:4])

3.6
('ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚', 15)

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² python ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: index() ΠΈ count(). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ примСняСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ индСкс Ρƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. НапримСр:

a = (32, 33, 34, 33, 34, 33)
print(a.index(33))

1

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Β«33Β» Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ нСсколько, Π½ΠΎ Π½Π° экран Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ….

ΠœΠ΅Ρ‚ΠΎΠ΄ count ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ссли Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ, сколько ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов имССтся Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅.

a = (32, 33, 34, 33, 34, 33)
print(a.count(33))

3

На экранС ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ появится ΠΈΠΌΠ΅Π½Π½ΠΎ число 3, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ искомоС число 33 повторяСтся 3 Ρ€Π°Π·Π°.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°Ρ… Π½Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² добавлСния ΠΈ удалСния элСмСнтов.

Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ

Π”Π°Π½Π½Ρ‹ΠΉ класс Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ примСнСния срСди программистов, хотя ΠΎΠ½ ΠΈ являСтся достаточно Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ. Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² python (ΠΈΠ»ΠΈ namedtuple) Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ смыслС ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…. Π’Π°ΠΊ, ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ считаСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ числовых индСксов. А Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли хочСтся для наглядности ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ строковоС Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅. Π’Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Для этого Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ namedtuple.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ namedtuple, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ collections. Π­Ρ‚ΠΎ дСлаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ import collecions *. Π’ этом случаС ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ namedtuple Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: collections.namedtuple( [ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹] ). Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт, сохранСнный Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅, доступСн Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°:

from collections import namedtuple
Flower = namedtuple('Flower' , 'color cost comment')
rose = Flower('red', 5, 'beautiful')
print(rose.cost)

5

НаимСнования ΠΏΠΎΠ»Π΅ΠΉ Π±Ρ‹Π»ΠΈ пСрСчислСны Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π». ВмСсто этой строки ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ список со строками. Π’ конструкторС namedtuple Ρ€Π°Π·ΠΎΠ±ΡŒΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ строку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ split. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнту cost. К ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ: rose.color, rose.comment.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΈΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Π’Π°ΠΊ, Π² Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ наимСнования color, cost ΠΈ comment. И ΠΏΡ€ΠΈ всСм ΠΏΡ€ΠΈ этом, сохраняСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ обращСния ΠΊ элСмСнтам ΠΏΠΎ индСксу, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дописав ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ:

print(rose[0])

red

Бписок ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

Иногда Π±Ρ‹Π²Π°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ (ΠΈΠ»ΠΈ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами). Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° array. К соТалСнию, Π½Π΅ получится с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ массив ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ элСмСнтом массива Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ.

Из этой ситуации Π΅ΡΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ – созданиС Π² Python списка ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ объявлСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ списка прСдставлСн Π½ΠΈΠΆΠ΅:

a = [(1,2,3),(4,5,6)]

CΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°

Иногда Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты списка. Благодаря встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sorted, всС это дСлаСтся достаточно Π»Π΅Π³ΠΊΠΎ:

a = ('One', 'Two', 'Three')
a = tuple(sorted(a))
print(a)

('One', 'Three', 'Two')

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° сортировка ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Python ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ сортировку ΠΌΠΎΠΆΠ½ΠΎ провСсти ΠΈ ΠΏΠΎ числовым элСмСнтом. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

a = (3, 1, 5 ,2, 6, 7)
a = tuple(sorted(a))
print(a)

(1, 2, 3, 5, 6, 7)

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° сортировка ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ функция sorted Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ tuple ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сортировки ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΡƒ.

Π’ список

ΠšΠΎΡ€Ρ‚Π΅ΠΆ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ Π² список:

a = (1,2,3)
a = list(a)
print(a)

[1, 2, 3]

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π±Ρ‹Π» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² список Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ дСйствиС β€” ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ списка Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:

a = [1, 2.6, "ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚"]
a = tuple(a)
print(a)

(1, 2.6, "ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚")

Π’ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ – это Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° структура ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π² Python. Он, ΠΊΠ°ΠΊ ΠΈ список, являСтся измСняСмым, Π½ΠΎ ΠΏΡ€ΠΈ этом нСупорядочСнным. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ элСмСнту посрСдством указания индСкса – Π½Π΅ получится. Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ провСсти аналогию с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Π°Π½Π³Π»ΠΎ-русским словарСм. Π’ Π½Π΅ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄: house –дом, flat – ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π°, window – ΠΎΠΊΠ½ΠΎ. Если пСрСнСсти Ρ‚Π°ΠΊΡƒΡŽ структуру Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‚ΠΎ получится такая запись, оформляСмая Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками:

{'house': 'Π΄ΠΎΠΌ', 'flat': 'ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π°', 'window': 'ΠΎΠΊΠ½ΠΎ'}

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π½Π° экран Π½Π΅ опрСдСляСтся Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΠΌ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Python ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ dict.

a = (('a', 2),('b', 4))
a = dict(a)
print(a)

{'a': 2, 'b': 4}

Как Π²ΠΈΠ΄Π½ΠΎ, для создания словаря понадобился ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ состоят ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ. Π˜Π½Π°Ρ‡Π΅ Π½Π΅ получаСтся провСсти ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ.

Π’ строку

Π§Ρ‚ΠΎΠ±Ρ‹ вывСсти Π² python ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π² ΠΎΠ΄Π½Ρƒ строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция join. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

a = ('one','two','three')
b = ''.join(a)
c = ','.join(a)
print(b)
print(c)

onetwothree
one,two,three

ПослС выполнСния ΠΊΠΎΠ΄Π° Π½Π° дисплСС появится запись всСх элСмСнтов Π² ΠΎΠ΄Π½Ρƒ строку с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС – Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ², Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС – Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ.

Π§Π΅ΠΌ ΠΆΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅? Π Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ быстрСС, Ρ‡Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, со списками. Если программисту Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ постоянный Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‚Π΅ΠΌ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. Плюс – это экономия ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСньшС мСста, Ρ‡Π΅ΠΌ списки.

all-python.ru

ΡƒΡ€ΠΎΠΊ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ~ PythonRu

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊ: Бписки (list)

ΠšΠΎΡ€Ρ‚Π΅ΠΆ β€” это упорядочСнная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, нСизмСняСмая. Π’ Python ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°:

thistuple = ("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ")
print(thistuple)

Π’Ρ‹Π²ΠΎΠ΄:

('ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€', 'ΠΎΠ³ΡƒΡ€Π΅Ρ†', 'Π»ΡƒΠΊ')

Доступ ΠΊ элСмСнтам ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ индСкса.
ВывСсти элСмСнт с индСксом 1:

thistuple = ("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ")
print(thistuple[1])

Π’Ρ‹Π²ΠΎΠ΄:

ΠΎΠ³ΡƒΡ€Π΅Ρ†

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнт ΠΊΠΎΡ€Π΅ΠΆΠ°

ПослС создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² Π½Π΅Π³ΠΎ. ΠšΠΎΡ€Ρ‚Π΅ΠΆ β€” нСизмСняСмый.

thistuple = ("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ")
thistuple[1] =  "ΠΌΠΎΡ€ΠΊΠΎΠ²ΠΊΠ°"  

Π’Ρ‹Π²ΠΎΠ΄:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    thistuple[1] =  "ΠΌΠΎΡ€ΠΊΠΎΠ²ΠΊΠ°"
TypeError: 'tuple' object does not support item assignment

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΡƒ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнты ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for.

thistuple = ("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ")
for x in thistuple:  
    print(x)

Π’Ρ‹Π²ΠΎΠ΄:

ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€
ΠΎΠ³ΡƒΡ€Π΅Ρ†
Π»ΡƒΠΊ

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

ВСст Π½Π° Π·Π½Π°Π½ΠΈΠ΅ python

Π’Π΅Ρ€Π½ΠΎ Π»ΠΈ Π΄Π°Π½Π½ΠΎΠ΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅: «Π’ Python Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…: числа ΠΈ строки»?

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ

Какой Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этого ΠΊΠΎΠ΄Π°?

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ

Какой Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠ΄Π° β€” print(type(1J)) ?

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ

{{title}}

{{image}}

{{content}}

{{/global}}

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π·

Π”Π»ΠΈΠ½Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°

Для опрСдСлСния количСства элСмСнтов списка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ len().
Π’Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅:

thistuple = ("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ")
print(len(thistuple))

Π’Ρ‹Π²ΠΎΠ΄:

3

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

ПослС создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ элСмСнты. ΠšΠΎΡ€Ρ‚Π΅ΠΆ β€” нСизмСняСмый.

thistuple = ("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ")
thistuple[3] = "ΠΌΠΎΡ€ΠΊΠΎΠ²ΠΊΠ°"  

Π’Ρ‹Π²ΠΎΠ΄:

Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    thistuple[3] =  "ΠΌΠΎΡ€ΠΊΠΎΠ²ΠΊΠ°"
TypeError: 'tuple' object does not support item assignment

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

Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнты ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:
ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово del ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:

thistuple = ("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ")  
del thistuple  
print(thistuple)  

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

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

thistuple = tuple(("ΠΏΠΎΠΌΠΈΠ΄ΠΎΡ€",  "ΠΎΠ³ΡƒΡ€Π΅Ρ†",  "Π»ΡƒΠΊ"))  
print(thistuple)

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°

Π’ Python Ρ‚Π°ΠΊ ΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅.

ΠœΠ΅Ρ‚ΠΎΠ΄Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
count()Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ элСмСнт встрСчаСтся Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅
index()Π˜Ρ‰Π΅Ρ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ индСкс

Π”Π°Π»Π΅Π΅: ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° (set)

pythonru.com

ΠšΠΎΡ€Ρ‚Π΅ΠΆ (Tuple) Π² Python

ΠšΠΎΡ€Ρ‚Π΅ΠΆ прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹Ρ… Python ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми. ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° списки, Π½ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнты ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π² спискС элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. ОсновноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ манипуляции с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΌ быстрСС, Ρ‡Π΅ΠΌ список, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ нСизмСняСмы. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ нСизмСняСмы, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡ΠΈ для словаря. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ нСсколько Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° (Tuple) Π² Python

ΠšΠΎΡ€Ρ‚Π΅ΠΆ опрСдСляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скобок. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ пустой ΠΏΠ°Ρ€ΠΎΠΉ ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобок.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = () #empty tuple print(a_tuple)

a_tuple = () #empty tuple

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° (Tuple) со значСниями

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) print(a_tuple)

a_tuple = (‘East’,’West’,’North’,’South’)

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

(‘East’, ‘West’, ‘North’, ‘South’)

(‘East’, ‘West’, ‘North’, ‘South’)

ΠšΠΎΡ€Ρ‚Π΅ΠΆ Python со ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (1,2,’sunday’,’monday’,3.14) print(a_tuple)

a_tuple = (1,2,’sunday’,’monday’,3.14)

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

(1, 2, ‘sunday’, ‘monday’, 3.14)

(1, 2, ‘sunday’, ‘monday’, 3.14)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’]) print(a_tuple)

a_tuple = (‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’])

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

(‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’])

(‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’])

Доступ ΠΊ значСниям ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°

Для доступа ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки [], Π³Π΄Π΅ индСкс начинаСтся с 0.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (1,2,’sunday’,’monday’,3.14) print(a_tuple[0]) # print 1st element print(a_tuple[1]) # print 2nd element print(a_tuple[-1]) # print last element print(a_tuple[-2]) # print 2nd last element

a_tuple = (1,2,’sunday’,’monday’,3.14)

print(a_tuple[0]) # print 1st element

print(a_tuple[1]) # print 2nd element

print(a_tuple[-1]) # print last element

print(a_tuple[-2]) # print 2nd last element

Π’Ρ‹Π²ΠΎΠ΄:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π² Python

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’]) print(a_tuple) print(a_tuple[0]) # print 1st element print(a_tuple[1]) # print 2nd element

a_tuple = (‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’])

print(a_tuple)

print(a_tuple[0]) # print 1st element

print(a_tuple[1]) # print 2nd element

Π’Ρ‹Π²ΠΎΠ΄:

(‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’]) 1899-10-34 [‘Drama’, ‘Tale of Two Cities’]

(‘1899-10-34’, [‘Drama’, ‘Tale of Two Cities’])

1899-10-34

[‘Drama’, ‘Tale of Two Cities’]

ΠŸΠ΅Ρ‚Π»ΠΈ ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) for dir in a_tuple: print (dir)

a_tuple = (‘East’,’West’,’North’,’South’)

for dir in a_tuple:

print (dir)

Π’Ρ‹Π²ΠΎΠ΄:

ΠšΠΎΡ€Ρ‚Π΅ΠΆ с индСксом

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) for i,dir in enumerate(a_tuple): print (i, » » , dir)

a_tuple = (‘East’,’West’,’North’,’South’)

for i,dir in enumerate(a_tuple):

print (i, » » , dir)

Π’Ρ‹Π²ΠΎΠ΄:

0 East 1 West 2 North 3 South

0 East

1 West

2 North

3 South

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Tuples, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Β«+Β».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) b_tuple = (1,2,3,4,5) c_tuple = a_tuple + b_tuple print(c_tuple)

a_tuple = (‘East’,’West’,’North’,’South’)

b_tuple = (1,2,3,4,5)

c_tuple = a_tuple + b_tuple

print(c_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

(‘East’, ‘West’, ‘North’, ‘South’, 1, 2, 3, 4, 5)

(‘East’, ‘West’, ‘North’, ‘South’, 1, 2, 3, 4, 5)

Π”Π»ΠΈΠ½Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° (Tuple) Π² Python

Ѐункция len Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°, Ρ€Π°Π²Π½ΡƒΡŽ количСству Π΅Π³ΠΎ элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) i = len(a_tuple) print(i)

a_tuple = (‘East’,’West’,’North’,’South’)

i = len(a_tuple)

print(i)

Π’Ρ‹Π²ΠΎΠ΄:

НарСзка ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Python

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Python ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ элСмСнты, основанныС Π½Π° запускС ΠΈ остановкС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) slc = a_tuple[1:3] print(slc)

a_tuple = (‘East’,’West’,’North’,’South’)

slc = a_tuple[1:3]

print(slc)

Π’Ρ‹Π²ΠΎΠ΄:

str [1: 3] — 1 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°Ρ… (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ индСкс срСза начинаСтся с 0). 3 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠΌ элСмСнтС Π² спискС, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Π”Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ посСрСдинС — это Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Python ΠΏΡ€ΠΈΠ·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Ρ€Π΅Π·ΠΊΡƒ для получСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² спискС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) slc = a_tuple[:2] # slice first two elements print(slc)

a_tuple = (‘East’,’West’,’North’,’South’)

slc = a_tuple[:2] # slice first two elements

print(slc)

Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) slc = a_tuple[2:] # slice from 3rd element, Python starts its index at 0 rather than 1. print(slc)

a_tuple = (‘East’,’West’,’North’,’South’)

slc = a_tuple[2:] # slice from 3rd element, Python starts its index at 0 rather than 1.

print(slc)

Π’Ρ‹Π²ΠΎΠ΄:

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² Python нСизмСняСмы. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ создали ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, Π²Ρ‹ Π½Π΅ смоТСтС ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнты, содСрТащиСся Π² Π½Π΅ΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ явно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ вСсь ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ del.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘East’,’West’,’North’,’South’) del a_tuple print(a_tuple)

a_tuple = (‘East’,’West’,’North’,’South’)

del a_tuple

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

Traceback (most recent call last): File «sample.py», line 8, in < module > print(a_tuple) NameError: name ‘a_tuple’ is not defined

Traceback (most recent call last):

File «sample.py», line 8, in < module >

print(a_tuple)

NameError: name ‘a_tuple’ is not defined

ОбновлСниС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ нСизмСняСмы, Π΅Π³ΠΎ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послС Π΅Π³ΠΎ назначСния. Но, Ссли элСмСнт сам являСтся ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, Π΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (1,2,3,4,[5,6]) a_tuple[4][1]=12 print(a_tuple)

a_tuple = (1,2,3,4,[5,6])

a_tuple[4][1]=12

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½ΠΎ, дСлая это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ эффСктивно Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ цСнностСй, сколько Π½Π°ΠΌ нравится, ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΡ… вмСстС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

def multi(): a=100 b=200 return (a,b) x,y = multi() print(x) print(y)

def multi():

a=100

b=200

return (a,b)

x,y = multi()

print(x)

print(y)

Π’Ρ‹Π²ΠΎΠ΄:

Π’Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (1,2,3,4,5) b_tuple = (‘a’,’b’,’c’,’d’,’3′) c_tuple = (a_tuple,b_tuple) print(c_tuple)

a_tuple = (1,2,3,4,5)

b_tuple = (‘a’,’b’,’c’,’d’,’3′)

c_tuple = (a_tuple,b_tuple)

print(c_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

((1, 2, 3, 4, 5), (‘a’, ‘b’, ‘c’, ‘d’, ‘3’))

((1, 2, 3, 4, 5), (‘a’, ‘b’, ‘c’, ‘d’, ‘3’))

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ списка Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (List to Tuple) Python

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ tuple().

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_list = [1,2,3,4,5] a_tuple = tuple(a_list) print(a_tuple)

a_list = [1,2,3,4,5]

a_tuple = tuple(a_list)

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°Ρ…

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° * повторяСт список Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ количСство Ρ€Π°Π·.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘halo’,’world’) a_tuple = a_tuple * 2 print(a_tuple)

a_tuple = (‘halo’,’world’)

a_tuple = a_tuple * 2

print(a_tuple)

Π’Ρ‹Π²ΠΎΠ΄:

(‘halo’, ‘world’, ‘halo’, ‘world’)

(‘halo’, ‘world’, ‘halo’, ‘world’)

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ

Tuple.count (x) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° x появляСтся Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (‘h’,’e’,’l’,’l’,’o’) cnt=a_tuple.count(‘l’) print(cnt)

a_tuple = (‘h’,’e’,’l’,’l’,’o’)

cnt=a_tuple.count(‘l’)

print(cnt)

Π’Ρ‹Π²ΠΎΠ΄:

Ѐункция zip()

Для цикличСского ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ записи ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ сопряТСны с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ zip().

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (1,2,3,4,5) b_tuple = (‘a’,’b’,’c’,’d’,’e’) for num, alp in zip(a_tuple,b_tuple): print(num, alp)

a_tuple = (1,2,3,4,5)

b_tuple = (‘a’,’b’,’c’,’d’,’e’)

for num, alp in zip(a_tuple,b_tuple):

print(num, alp)

Π’Ρ‹Π²ΠΎΠ΄:

Tuple min(), max()

Min() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°, Π° max() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

a_tuple = (1,2,3,4,5) print(min(a_tuple)) print(max(a_tuple))

a_tuple = (1,2,3,4,5)

print(min(a_tuple))

print(max(a_tuple))

Π’Ρ‹Π²ΠΎΠ΄:

Β 

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: net-informations.com

bunkerbook.ru

список ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ / Habr

Π’ Python, Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… Ρ‚ΠΈΠΏΠ° β€” список (list) ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ (tuple). Бамая извСстная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ нСизмСняСмы.

Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² tuple:

>>> a = (1,2,3)
>>> a[0] = 10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Но Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°:
>>> b = (1,[1,2,3],3)
>>> b[1]
[1, 2, 3]
>>> b[1].append(4)
>>> b
(1, [1, 2, 3, 4], 3)

Π’Π½ΡƒΡ‚Ρ€ΠΈ CPython (стандартного ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°), список ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ лист ΠΈΠ· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ (ссылок) Π½Π° Python ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‚.Π΅. физичСски ΠΎΠ½ΠΈ Π½Π΅ хранят ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ рядом с Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Когда Π²Ρ‹ удаляСтС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· списка происходит ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ссылки Π½Π° этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΅Ρ‰Ρ‘ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ссылаСтся, Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² памяти.
ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ

НСсмотря Π½Π° Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π½Π΅ Ρ‚Π°ΠΊ популярны, это ΠΎΡ‡Π΅Π½ΡŒ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Python постоянно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ, Π½ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΊΠΎΠ³Π΄Π°:

  • Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ (ΠΎΠ½ΠΈ хранятся ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ)
  • Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ-значСния Π² словарС
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, самый просто скрипт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ тысячи ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ:
>>> import gc
>>> def type_stats(type_obj):
...     count = 0
...     for obj in gc.get_objects():
...         if type(obj) == type_obj:
...             count += 1
...     return count
...
>>> type_stats(tuple)
3136
>>> type_stats(list)
659
>>> import pandas
>>> type_stats(tuple)
6953
>>> type_stats(list)
2455

ΠŸΡƒΡΡ‚Ρ‹Π΅ списки vs пустыС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ

ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ синглтон, Ρ‚.Π΅. Π² памяти Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Python скрипта всСгда находится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ пустой ΠΊΠΎΡ€Ρ‚Π΅ΠΆ. ВсС пустыС ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ просто ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ нСизмСняСмы. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ сохраняСт ΠΌΠ½ΠΎΠ³ΠΎ памяти ΠΈ ускоряСт процСсс Ρ€Π°Π±ΠΎΡ‚Ρ‹ с пустыми ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ.
>>> a = ()
>>> b = ()
>>> a is b
True
>>> id(a)
4409020488
>>> id(b)
4409020488
>>> # Π’ CPython, функция id Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ адрСс Π² памяти.

Но это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со списками, вСдь ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹:
>>> a = []
>>> b = []
>>> a is b
False
>>> id(a)
4465566920
>>> id(b)
4465370632

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ выдСлСния памяти для ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

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

Π­Ρ‚ΠΎΡ‚ список Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 20 Π³Ρ€ΡƒΠΏΠΏ, Π³Π΄Π΅ каТдая Π³Ρ€ΡƒΠΏΠΏΠ° прСдставляСт ΠΈΠ· сСбя список ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° n, Π³Π΄Π΅ n ΠΎΡ‚ 0 Π΄ΠΎ 20. КаТдая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄ΠΎ 2 000 свободных ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. ΠŸΠ΅Ρ€Π²Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт ΠΈ прСдставляСт ΠΈΠ· сСбя список ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ пустого ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°.

>>> a = (1,2,3)
>>> id(a)
4427578104
>>> del a
>>> b = (1,2,4)
>>> id(b)
4427578104

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ a ΠΈ b ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ адрСс Π² памяти. Π­Ρ‚ΠΎ происходит ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ заняли свободный ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.
ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ выдСлСния памяти для списков

Π’Π°ΠΊ ΠΊΠ°ΠΊ списки ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΊ Π² случаС с ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠΆΠ΅ Π½Π΅ получится. НСсмотря Π½Π° это, для списков ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ похоТая оптимизация нацСлСнная Π½Π° пустыС списки. Если пустой список удаляСтся, Ρ‚ΠΎ ΠΎΠ½ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ Π² дальнСйшСм.
>>> a = []
>>> id(a)
4465566792
>>> del a
>>> b = []
>>> id(b)
4465566792

ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° списка

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° постоянноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° списков, Python Π½Π΅ измСняСт Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это трСбуСтся. ВмСсто этого, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ спискС Π΅ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ячССк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скрыты для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΠΎ Π² дальнСйшСм ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скрытыС ячСйки Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Python добавляСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Π΄Π΅Π»Π°Π΅Ρ‚ это с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ запасом, количСство скрытых ячССк выбираСтся Π½Π° основС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° списка β€” Ρ‡Π΅ΠΌ ΠΎΠ½ большС, Ρ‚Π΅ΠΌ большС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… скрытых слотов ΠΏΠΎΠ΄ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты.

Π­Ρ‚Π° оптимизация особСнно Π²Ρ‹Ρ€ΡƒΡ‡Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ мноТСство элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅.

ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½ роста Ρ€Π°Π·ΠΌΠ΅Ρ€Π° списка выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ: 0, 4, 8, 16, 25, 35, 46, 58, 72, 88,…

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π² список с 8 элСмСнтами, Ρ‚ΠΎ свободных ячССк Π² Π½Ρ‘ΠΌ ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ Python сразу Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎ 16 ячССк, Π³Π΄Π΅ 9 ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄ΡƒΡ‚ заняты ΠΈ Π²ΠΈΠ΄Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π€ΠΎΡ€ΠΌΡƒΠ»Π° Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° написанная Π½Π° Python:

>>> def get_new_size(n_items):
...     new_size = n_items + (n_items // 2 ** 3)
...     if n_items < 9:
...             new_size += 3
...     else:
...             new_size += 6
...
...     return new_size
...
>>> get_new_size(9)
16

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ

Если ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ эти Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΏΠΎ скорости, Ρ‚ΠΎ Π² срСднСм ΠΏΠΎ Π±ΠΎΠ»ΡŒΠ½ΠΈΡ†Π΅, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ слСгка быстрСС списков. Π£ Raymond Hettinger Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ объяснСниС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² скорости Π½Π° stackoverflow.

P.S.: Π― являюсь Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ вопросы.

habr.com

Python | ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ

ПослСднСС обновлСниС: 26.04.2017

ΠšΠΎΡ€Ρ‚Π΅ΠΆ (tuple) прСдставляСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов, которая Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° список Π·Π° Ρ‚Π΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ являСтся нСизмСняСмым (immutable) Ρ‚ΠΈΠΏΠΎΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнты Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ.

Для создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π΅Π³ΠΎ значСния, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми:


user = ("Tom", 23)
print(user)

Π’Π°ΠΊΠΆΠ΅ для опрСдСлСния ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ значСния Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ Π±Π΅Π· примСнСния скобок:


user = "Tom", 23
print(user)

Если Π²Π΄Ρ€ΡƒΠ³ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта, Ρ‚ΠΎ послС СдинствСнного элСмСнта ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΏΡΡ‚ΡƒΡŽ:


user = ("Tom",)

Для создания ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΈΠ· списка ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ список Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ tuple(), которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:


users_list = ["Tom", "Bob", "Kate"]
users_tuple = tuple(users_list)
print(users_tuple)      # ("Tom", "Bob", "Kate")

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ происходит Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² спискС ΠΏΠΎ индСксу. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ начинаСтся Ρ‚Π°ΠΊΠΆΠ΅ с нуля ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ элСмСнтов с Π½Π°Ρ‡Π°Π»Π° списка ΠΈ с -1 ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ элСмСнтов с ΠΊΠΎΠ½Ρ†Π° списка:


users = ("Tom", "Bob", "Sam", "Kate")
print(users[0])     # Tom
print(users[2])     # Sam
print(users[-1])     # Kate

# ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° со 2 элСмСнта ΠΏΠΎ 4
print(users[1:4])       # ("Bob", "Sam", "Kate")

Но Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ — нСизмСняСмый Ρ‚ΠΈΠΏ (immutable), Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ смоТСм ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ элСмСнты. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ запись Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚:


users[1] = "Tim"

ΠŸΡ€ΠΈ нСобходимости ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:


user = ("Tom", 22, False)
name, age, isMarried = user
print(name)             # Tom
print(age)              # 22
print(isMarried)        # False

ОсобСнно ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сразу нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Когда функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, фактичСски ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆ:


def get_user():
    name = "Tom"
    age = 22
    is_married = False
    return name, age, is_married


user = get_user()
print(user[0])              # Tom
print(user[1])              # 22
print(user[2])              # False

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ len() ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°:


user = ("Tom", 22, False)
print(len(user))		# 3

ΠŸΠ΅Ρ€Π΅Π±ΠΎΡ€ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

Для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС Ρ†ΠΈΠΊΠ»Ρ‹ for ΠΈ while. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for:


user = ("Tom", 22, False)
for item in user:
    print(item)

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° while:


user = ("Tom", 22, False)

i = 0
while i < len(user):
    print(user[i])
    i += 1

Как для списка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ выраТСния элСмСнт in ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ элСмСнта Π² ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅:


user = ("Tom", 22, False)
name = "Tom"
if name in user:
    print("ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π·ΠΎΠ²ΡƒΡ‚ Tom")
else:
    print("ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ имя")

Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ

Один ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² Π²ΠΈΠ΄Π΅ элСмСнтов. НапримСр:


countries = (
    ("Germany", 80.2, (("Berlin",3.326), ("Hamburg", 1.718))),
    ("France", 66, (("Paris", 2.2),("Marsel", 1.6)))
)

for country in countries:
    countryName, countryPopulation, cities = country
    print("\nCountry: {}  population: {}".format(countryName, countryPopulation))
    for city in cities:
        cityName, cityPopulation = city
        print("City: {}  population: {}".format(cityName, cityPopulation))

Π—Π΄Π΅ΡΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ countries, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт страны, состоит ΠΈΠ· ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… — ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ страна.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Ρ€ΠΈ элСмСнта: Π½Π°Π·Π²Π°Π½ΠΈΠ΅ страны, Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΅Π΅ насСлСния ΠΈ Π³ΠΎΡ€ΠΎΠ΄Π°. Π“ΠΎΡ€ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π³ΠΎΡ€ΠΎΠ΄ — это Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, содСрТащий Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³ΠΎΡ€ΠΎΠ΄Π° ΠΈ Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ насСлСния.

metanit.com

ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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

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