Π Π°Π·Π½ΠΎΠ΅

Π Π°Π±ΠΎΡ‚Π° со списками ΠΏΠΈΡ‚ΠΎΠ½: Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство Python list / Π₯Π°Π±Ρ€

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

БписковыС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (list comprehension) | Кодкамп β€” ΠΎΠ½Π»Π°ΠΉΠ½-институт Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ²

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

# списковоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹Π΄Π°Ρ‘Ρ‚ [2, 3, 4]
[x + 1 for x in (1, 2, 3)]

# Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, выдаст 2, Π·Π°Ρ‚Π΅ΠΌ 3, Π·Π°Ρ‚Π΅ΠΌ 4
(x + 1 for x in (1, 2, 3)) 

# списковоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ [2]
[x for x in (1, 2, 3) if x % 2 == 0]

# списковоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Ρ‚Ρ€ΠΎΠΉΠΊΠΎΠΉ
[x + 1 if x % 2 == 0 else x for x in (1, 2, 3)]

# списковоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ с Ρ‚Ρ€ΠΎΠΉΠΊΠΎΠΉ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ
[x + 1 if x % 2 == 0 else x for x in range(-3,4) if x > 0]

# ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ‹Π΄Π°Ρ‘Ρ‚ {1, 2, 3}
{x for x in (1, 2, 2, 3)} 

# ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π²Ρ‹Π΄Π°Ρ‘Ρ‚ {'a': 1, 'b': 2} (python 2.7+ and 3.0+ only)
{k: v for k, v in [('a', 1), ('b', 2)]} 

# Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, Π΄Π°Π΅Ρ‚ [11, 21, 12, 22]
[x + y for x in [1, 2] for y in [10, 20]] 

# БостояниС ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π½Π° 1-ΠΉ ΠΏΠ΅Ρ‚Π»Π΅
[x + y for x in [1, 2, 3] if x > 2 for y in [3, 4, 5]]

# БостояниС ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Π½Π° 2-ΠΉ ΠΏΠ΅Ρ‚Π»Π΅
[x + y for x in [1, 2, 3] for y in [3, 4, 5] if x > 2] 

# УсловиС ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ, Ссли Π·Π°Ρ†ΠΈΠΊΠ»Π΅Π½Π½Ρ‹Π΅ числа Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Π΅
[x for x in xrange(10) if x % 2 == 0] 	

ЗамСчания

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ β€” это синтаксичСскиС конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ выраТСния, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ пСрСосмысливаСт ΠΈΡ… Π² понятныС выраТСния. Π’ качСствС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

  • Π² ΠΏΡ€Π°Π²ΠΎΠΉ части присвоСний
  • Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
  • Π² Ρ‚Π΅Π»Π΅ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. (НапримСр: [print(x) для x Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ (10)])

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ списковых Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

БписковыС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

БписковоС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ создаСт Π½ΠΎΠ²Ρ‹ΠΉ list, примСняя Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ. НаиболСС простой Ρ„ΠΎΡ€ΠΌΠΎΠΉ являСтся:

[ <expression> for <element> in <iterable> ]

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС if:

[ <expression> for <element> in <iterable> if <condition> ]

 

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ <element> Π² <iterable> ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ <expression> Ссли (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) <условиС> ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true . ВсС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сразу Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π½ΠΎΠ²Ρ‹ΠΉ список. Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ вычисляСт ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° списковыС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ вСсь ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ β€” занимая ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π΄Π»ΠΈΠ½Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² Ρ†Π΅Π»Ρ‹Ρ… чисСл:

squares = [x * x for x in (1, 2, 3, 4)]
squares #ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹

>>>Out: [1, 4, 9, 16]

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ for  устанавливаСт x для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈΠ· (1, 2, 3, 4). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния x * x добавляСтся Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ список. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ список присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°ΠΌ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ.

Помимо ускорСния (ΠΊΠ°ΠΊ описано здСсь), списковыС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ эквивалСнтны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ for:

squares = []
for x in (1, 2, 3, 4):
    squares.append(x * x)

>>>Out:[1, 4, 9, 16]

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, примСняСмоС ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ слоТным, насколько это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… символов ΠΈΠ· строки
[s.upper() for s in "Hello World"]

>>>Out:['H', 'E', 'L', 'L', 'O', ' ', 'W', 'O', 'R', 'L', 'D']

# Π£Π±Ρ€Π°Ρ‚ΡŒ всС запятыС с ΠΊΠΎΠ½Ρ†Π° строки Π² спискС
[w. strip(',') for w in ['these,', 'words,,', 'mostly', 'have,commas,']]

>>>Out:['these', 'words', 'mostly', 'have,commas']

# ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Ρ‹ Π² словах Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС
sentence = "Beautiful is better than ugly"
["".join(sorted(word, key = lambda x: x.lower())) for word in sentence.split()]

>>>Out:['aBefiltuu', 'is', 'beertt', 'ahnt', 'gluy'] 

else ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² списковых Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ…, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° синтаксисом. УсловиС if ΠΈΠ»ΠΈ else

ИспользованиС списков list в Python.

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

>>> squares = [1, 4, 9, 16, 25]
>>> squares
[1, 4, 9, 16, 25]

Как ΠΈ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ встроСнныС Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, списки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ срСзы:

# индСксация Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт
>>> squares[0]
# 1
>>> squares[-1]
# 25

# срСз Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ список
>>> squares[-3:]
# [9, 16, 25]

ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ срСзов Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ список, содСрТащий Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½Ρ‹Π΅ элСмСнты. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚Π½ΡƒΡŽ копию списка:

# ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ списка
>>> cp = squares[:]
>>> cp
# [1, 4, 9, 16, 25]
>>> cp.remove(1)
>>> cp
# [4, 9, 16, 25]

# список squares нС измСнился
>>> squares
# [1, 4, 9, 16, 25]

Бписки Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ конкатСнация:

>>> squares + [36, 49, 64, 81, 100]
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ тСкстовых строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмыми, списки ΡΠ²Π»ΡΡŽΡ‚ΡΡ измСняСмым Ρ‚ΠΈΠΏΠΎΠΌ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… содСрТимоС:

>>> cubes = [1, 8, 27, 65, 125]
>>> 4 ** 3
# 64

# Π·Π°ΠΌΠ΅Π½ΠΈΠΌ  Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
>>> cubes[3] = 64
>>> cubes
# [1, 8, 27, 64, 125]

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

>>> cubes.append(216)  # add the cube of 6
>>> cubes.append(7 ** 3)  # and the cube of 7
>>> cubes
# [1, 8, 27, 64, 125, 216, 343]

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ присвоСниС срСзов, ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ списка ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:

>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> letters
# ['a', 'b', 'c', 'd', 'e', 'f', 'g']

# Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ значСния
>>> letters[2:5] = ['C', 'D', 'E']
>>> letters
# ['a', 'b', 'C', 'D', 'E', 'f', 'g']

# Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»ΠΈΠΌ ΠΈΡ…
>>> letters[2:5] = []
>>> letters
# ['a', 'b', 'f', 'g']

# очистим список, Π·Π°ΠΌΠ΅Π½ΠΈΠ² всС элСмСнты пустым списком
>>> letters[:] = []
>>> letters
# []

ВстроСнная функция len(), которая вычисляСт количСство элСмСнтов Π² спискС, Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся ΠΊ спискам:

>>> letters = ['a', 'b', 'c', 'd']
>>> len(letters)
# 4

МоТно Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ списки (ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ списки, содСрТащиС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ списки), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
# [['a', 'b', 'c'], [1, 2, 3]]

>>> x[0]
# ['a', 'b', 'c']

>>> x[0][1]
# 'b'

Π’ΠΎΡ‚ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… список:

Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ list. insert, list.remove ΠΈΠ»ΠΈ list.sort, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ список, Π½Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ½ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ None ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ проСктирования для всСх измСняСмых структур Π΄Π°Π½Π½Ρ‹Ρ… Π² Python.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ отсортированы ΠΈΠ»ΠΈ сравнСны. НапримСр, [None, 'hello', 10] Π½Π΅ сортируСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа нСльзя ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ со строками, Π° None нСльзя ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ упорядочСния. НапримСр Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3+4j < 5+7j комплСксных чисСл Π½Π΅ являСтся допустимым сравнСниСм.

  • list.append(Ρ…):
    ДобавляСт элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† списка. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ lst[len(lst):] = [x]

  • list.extend(iterable):
    Π Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ список, Π΄ΠΎΠ±Π°Π²ΠΈΠ² всС элСмСнты ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ lst[len(lst):] = iterable

  • list. insert(i, x):
    ВставляСт элСмСнт Π² Π·Π°Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ — это индСкс элСмСнта, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, поэтому lst.insert(0, x) вставляСтся Π² Π½Π°Ρ‡Π°Π»ΠΎ списка, Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ lst.insert(len(lst), x) эквивалСнтно a.append(x).

  • list.remove(x):
    УдаляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠ· списка, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π½ΠΎ x. ΠŸΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ ValueError, Ссли Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта Π½Π΅Ρ‚.

  • list.pop([i]):
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ удаляСт этот элСмСнт ΠΈΠ· списка. Если индСкс Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ lst.pop(), Ρ‚ΠΎ удаляСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ послСдний элСмСнт ΠΈΠ· списка. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки Π²ΠΎΠΊΡ€ΡƒΠ³ i Π² сигнатурС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π° Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки Π² этой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’Ρ‹ часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ это ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Python.

  • list.clear():
    УдаляСт всС элСмСнты ΠΈΠ· списка. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ del a[:].

  • list.index(x[, start[, end]]):
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ индСкс Π² спискС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π½ΠΎ x. ΠŸΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ ValueError, Ссли Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта Π½Π΅Ρ‚.

    ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ start ΠΈ end ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ срСза, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ограничСния поиска ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ списка. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ индСкс вычисляСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π° Π½Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° start.

  • list.count(x):
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство появлСний значСния x Π² спискС.

  • list.sort(key=None, reverse=False):
    Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° элСмСнтов списка Π½Π° мСстС. АргумСнты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для настройки сортировки, значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅-ΠΆΠ΅ ΠΊΠ°ΠΊ Π²ΠΎ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sorted().

  • list.reverse():
    ΠœΠ΅Π½ΡΠ΅Ρ‚ мСстами элСмСнты списка. ΠŸΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ список.

  • list.copy():
    Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅Π»ΠΊΡƒΡŽ копию списка. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ lst[:].


Π’Π°ΠΊ-ΠΆΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ смотритС:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ модуля random для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками Python.

Π’Ρ‹Π±ΠΎΡ€ случайных элСмСнтов списка ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ списка.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ прСдставлСны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ модуля random для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ.

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


random.choice(seq):

Ѐункция random.choice() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ случайный элСмСнт ΠΈΠ· нСпустой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ seq. Если seq пуст, Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IndexError.

>>> import random
>>> random.choice('abcdefg')
# 'f'
>>> random.choice([1, 'a', 2, 'b', 3, 'c'])
# '3'
random.choices(population, weights=None, *, cum_weights=None, k=1):

Ѐункция random.choices() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список элСмСнтов Π΄Π»ΠΈΠ½Ρ‹ k, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ population с пСрСстановкой элСмСнтов. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° трСбуСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ нСсколько k случайных элСмСнтов ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, элСмСнты Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ порядок.

>>> import random
>>> l = [10, 25, 30, 45, 50 ,65, 70, 85, 90, 105]
>>> random.choices(l, k=5)
# [90, 65, 90, 10, 45]
  • Если k>len(population), Ρ‚ΠΎ элСмСнты population ΠΌΠΎΠ³ΡƒΡ‚ повторятся нСсколько Ρ€Π°Π·.
  • Если Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ population Π½Π΅ Π·Π°Π΄Π°Π½, Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ IndexError.

Если ΡƒΠΊΠ°Π·Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ weights, Π²Ρ‹Π±ΠΎΡ€ производится Π² соотвСтствии с ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСсами weights. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ссли Π·Π°Π΄Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ cum_weights, Π²Ρ‹Π±ΠΎΡ€ производится Π² соотвСтствии с кумулятивными вСсами, вычислСнными с использованиСм itertools.accumulate(). НапримСр, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вСса [10, 5, 30, 5] эквивалСнтны совокупным вСсам [10, 15, 45, 50]. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ вСса weights ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² кумулятивныС вСса cum_weights, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€, поэтому прСдоставлСниС кумулятивных вСсов экономит Ρ€Π°Π±ΠΎΡ‚Ρƒ.

  • Если Π½ΠΈ weights, Π½ΠΈ cum_weights Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ дСлаСтся с Ρ€Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ.
  • Если ΡƒΠΊΠ°Π·Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вСсов, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ population. Если Π΄Π»ΠΈΠ½Π° weights ΠΈΠ»ΠΈ cum_weights отличаСтся ΠΎΡ‚ population, Ρ‚ΠΎ вызываСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ TypeError.

АргумСнты weights ΠΈΠ»ΠΈ cum_weights ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой числовой Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ взаимодСйствуСт с вСщСствСнным значСниями, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌΠΈ random.random(), Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈ Π΄Ρ€ΠΎΠ±ΠΈ, Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ дСсятичныС Π΄Ρ€ΠΎΠ±ΠΈ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ вСса ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ValueError, Ссли ΠΎΠ±Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° weights ΠΈ cum_weights Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

Для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ числа, функция random.choices() с Ρ€Π°Π²Π½Ρ‹ΠΌ вСсом ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ random.choice(). Алгоритм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ random.choices(), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ согласованности ΠΈ скорости. Алгоритм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ choice (), ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌΠΈΡΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΉ ΠΎΡ‚ ошибки округлСния.

ИзмСнСно Π² Python 3.9: Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ValueError, Ссли ΠΎΠ±Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° weights ΠΈ cum_weights Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ.

random.shuffle(x[, random]):

Ѐункция random.shuffle() ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ x Π½Π° мСстС.

>>> import random
>>> l = list(range(1, 50, 6))
>>> random.shuffle(l)
>>> l
# [31, 1, 49, 19, 7, 37, 25, 13, 43]

Ѐункция random. shuffle() способна Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с измСняСмыми ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ, Ρ‚.Π΅. ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ пСрСстановку ΠΈΠ· строки ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π½Π΅ получится. Для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π½ΠΈΡ нСизмСняСмых ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ random.sample(x, k=len(x)).

Ѐункция Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚, Π° измСняСт нСпосрСдствСнно сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. НапримСр, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ пСрСстановку элСмСнтов ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° ΠΈ строки ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ‚Π°ΠΊ:

>>> import random
# пСрСстановка Π±ΡƒΠΊΠ² строки случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ
>>> x = 'ΠΊΡƒΠΊΡƒΡ€ΡƒΠ·Π°'
>>> s = random.sample(x, k=len(x))
>>> ''.join(s)
# 'Π·ΡƒΡ€ΡƒΠ°ΠΊΡƒΠΊ'

# пСрСстановка элСмСнтов ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ
>>> x = (1, 8, 15, 22, 29, 36, 43)
>>> t = random.sample(x, k=len(x))
>>> tuple(t)
# (43, 29, 22, 1, 36, 15, 8)

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ random ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ которая Π²Ρ‹Π΄Π°Π΅Ρ‚ случайныС числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ [0.0, 1.0], с СдинствСнным условиСм — данная функция Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ это функция random.random():

>>> import random
>>> l = [1, 2, 3, 4]
>>> random.shuffle(l, random.random)
>>> l
# [2, 3, 4, 1]

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ random устарСл с вСрсии Python 3.9 ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ Π² вСрсии 3.11:

random.sample(population, k, *, counts=None):

Ѐункция random.sample() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список Π΄Π»ΠΈΠ½Ρ‹ k ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ»ΠΈ мноТСства population. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для случайной Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π±Π΅Π· Π·Π°ΠΌΠ΅Π½Ρ‹. Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ population остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для случайной Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π±Π΅Π· Π·Π°ΠΌΠ΅Π½Ρ‹.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ population Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ…Π΅ΡˆΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Если population содСрТит ΠΏΠΎΠ²Ρ‚ΠΎΡ€Ρ‹, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ случай являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ спискС.

>>> import random
>>> s = 'Π°Π±Ρ€Π°ΠΊΠ°Π΄Π°Π±Ρ€Π°'
>>> random. sample(s, 5)
# ['ΠΊ', 'Π±', 'Π±', 'Π°', 'Ρ€']

ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° counts. НапримСр:

random.sample(['red', 'blue'], counts=[4, 2], k=5)
# эквивалСнтно
random.sample(['red', 'red', 'red', 'red', 'blue', 'blue'], k=5).

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… элСмСнтов Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ самой Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ, Ρ‚.Π΅. k <= len(population), Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС появляСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ValueError.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ range() Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π­Ρ‚ΠΎ особСнно быстро ΠΈ эффСктивно для ΠΎΡ‚Π±ΠΎΡ€Π° элСмСнтов ΠΈΠ· Π±ΠΎΠ»ΡŒΡˆΠΈΡ… population: Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10000000), k = 60).

Π’ качСствС population ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹:

# Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ†Π΅Π»Ρ‹Ρ… чисСл
>>> random.sample(range(10000000), 5)
# [312288, 4733164, 9173113, 8937636, 8361736]

# Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ· Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°
>>> random. sample([i**2 for i in range(33)], 10)
# [529, 784, 324, 256, 361, 676, 289, 900, 36, 841]

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ population ΠΈ k ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ довольно большими, Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ создании Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ индСксы Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… элСмСнтов, Π»ΠΈΠ±ΠΎ индСксы Ρ‚Π΅Ρ… элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… значСниях k ΠΈ Π΄Π»ΠΈΠ½Ρ‹ population функция ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ довольно ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ памяти.

ИзмСнСно Π² Python 3.9: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ counts.

НС рСкомСндуСтся с вСрсии Python 3.9: Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ population Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. ЭкзСмпляры мноТСства set большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ сначала Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² список ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ порядкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ воспроизвСсти.

Бписки в Python » Linux

Бписки ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Β ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках []. Всё, Ρ‡Ρ‚ΠΎ Π²Β ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках, называСтся индСксами.

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ индСкса из списка

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']

Π’Ρ‹Π²ΠΎΠ΄:

spam[0]
'кошка'

spam[2]
'ΠΌΡ‹ΡˆΠΊΠ°'

Бписки Π²Π½ΡƒΡ‚Ρ€ΠΈ списка

В спискС ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ списки. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ список становится индСксом.

spam = [['кошка', 'собака'], [10, 20, 30, 40, 50]]

spam[0]
['кошка', 'собака']

ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']

spam[-1]
['ΠΌΡ‹ΡˆΠΊΠ°']

spam[-3]
['кошка']

spam[-2] + ' ΠΏΡ€ΠΎΡ‚ΠΈΠ² ' + spam[-3]
'Кошка ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΌΡ‹ΡˆΠΊΠ°'


Π˜Π½Π΄Π΅ΠΊΡΡ‹ и срСзы (slices)

Если Π΄Π²Π° индСкса Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ, то это срСз.

# это простой список с индСксом
spam[1]

# Π° это список со срСзом
spam[1:3]

В срСзС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β β€” это индСкс, с которого начинаСтся срСз. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β β€” это индСкс, Π½Π°Β ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ заканчиваСтся срСз.

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°'] 

spam[0:3]
['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']

spam[1:3]
['собака', 'ΠΌΡ‹ΡˆΠΊΠ°']

spam[0:-1]
['кошка', 'собака']

МоТно ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΎΠ±Π° индСкса ΠΌΠ΅ΠΆΠ΄Ρƒ срСзом.

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°'] 

spam[:2]
['кошка', 'собака']

spam[1:]
['собака', 'ΠΌΡ‹ΡˆΠΊΠ°']

spam[:]
Β ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']

ИзмСнСниС индСксов в спискС

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°'] 

spam[0] = 'ΠΊΠΎΡ‚'
spam
['ΠΊΠΎΡ‚', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']

spam[1] = spam[0]
spam
['ΠΊΠΎΡ‚', 'ΠΊΠΎΡ‚', 'ΠΌΡ‹ΡˆΠΊΠ°']

spam[-1] = 12345
spam
['ΠΊΠΎΡ‚', 'ΠΊΠΎΡ‚', '12345']

ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ и рСпликация списков

НСсколько списков ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π²Β ΠΎΠ΄ΠΈΠ½ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания +.

[1, 2, 3] + ['A', 'B', 'C']
[1, 2, 3, 'A', 'B', 'C']

МоТно Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° умноТСния *.

['X', 'Y', 'Z'] * 3
['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z']

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.

spam = [1, 2, 3]
spam = spam + ['A', 'B', 'C']

spam
[1, 2, 3, 'A', 'B', 'C']

УдалСниС индСкса из списка

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ индСкс ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° del.

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']Β 

del spam[2]
spam
['кошка', 'собака']

del spam[1]
spam
['кошка']

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ delΒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для удалСния простой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Но Ссли Π²Ρ‹Β ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ послС СС удалСния, Π²Ρ‹Β ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ NameError, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ пСрСмСнная большС нС сущСствуСт.

На практикС ΠΏΠΎΡ‡Ρ‚ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅Β Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ простыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ del в основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния индСксов из списка.

supplies = ['ΠšΠ°Ρ€Π°Π½Π΄Π°ΡˆΠΈ', 'Π‘Ρ‚Π΅ΠΏΠ»Π΅Ρ€Ρ‹', 'Π‘ΠΊΡ€Π΅ΠΏΠΊΠΈ', 'Ластики', 'Кнопки']
for i in range(len(supplies)):
    print('Π’ индСксС ' + str(i) + ' Π² supplies содСрТатся ' + supplies[i])

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

Π’ индСксС 0 Π² supplies содСрТатся ΠšΠ°Ρ€Π°Π½Π΄Π°ΡˆΠΈ
Π’ индСксС 1 Π² supplies содСрТатся Π‘Ρ‚Π΅ΠΏΠ»Π΅Ρ€Ρ‹
Π’ индСксС 2 Π² supplies содСрТатся Π‘ΠΊΡ€Π΅ΠΏΠΊΠΈ
Π’ индСксС 3 Π² supplies содСрТатся Ластики
Π’ индСксС 4 Π² supplies содСрТатся Кнопки

ИспользованиС range(len(supplies))Β Π²Β Ρ†ΠΈΠΊΠ»Π΅Β forΒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π²Β Ρ†ΠΈΠΊΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ к индСксу (ΠΊΠ°ΠΊ пСрСмСнная i) ΠΈΒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ этого индСкса (ΠΊΠ°ΠΊΒ supplies[i]). Β range(len(supplies)) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС индСксы supplies, нСзависимо ΠΎΡ‚Β Ρ‚ΠΎΠ³ΠΎ, сколько элСмСнтов Π²Β Π½ΠΈΡ… содСрТится.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ inΒ ΠΈΒ not in

Π‘Β ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽΒ inΒ ΠΈΒ not in Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, находится ли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ в спискС ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

Как ΠΈΒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, выраТСния inΒ ΠΈΒ not inΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ в выраТСниях ΠΈΒ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ Π΄Π²Π° значСния: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ в спискС, и список, Π²Β ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ. Π­Ρ‚ΠΈ выраТСния ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ к логичСскому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

'собака' in ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']
True

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']
'ΠΊΠΎΡ‚'
False

'собака' not in spam
False

'ΠΊΠΎΡ‚' not in spam
True


Π•ΡΡ‚ΡŒΒ Π»ΠΈ в спискС этот ΠΏΠΈΡ‚ΠΎΠΌΠ΅Ρ†?

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ имя ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°, Π°Β Π·Π°Ρ‚Π΅ΠΌ провСряСт, Π΅ΡΡ‚ΡŒΒ Π»ΠΈ имя в спискС ΠΏΠΈΡ‚ΠΎΠΌΡ†Π΅Π².

myPets = ['Васян', 'Виша', 'ΠœΡƒΡ€Π·ΠΈΠΊ', 'Π‘ΠΎΠ±ΠΈΠΊ']
print('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°: ')
name = input()
if name not in myPets:
    print('Π’ спискС Π½Π΅Ρ‚ ΠΏΠΈΡ‚ΠΎΠΌΡ†Π° ' + name)
else:
    print(name + ' Π΅ΡΡ‚ΡŒ Π² спискС. ')

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹:

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°: 
Васян
Васян Π΅ΡΡ‚ΡŒ Π² спискС. 

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ имя ΠΏΠΈΡ‚ΠΎΠΌΡ†Π°: 
Барбос
Π’ спискС Π½Π΅Ρ‚ ΠΏΠΈΡ‚ΠΎΠΌΡ†Π° Барбос

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ присваиваниС

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ присваиваниС β€” это ярлык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… со значСниями в спискС Π²Β ΠΎΠ΄Π½ΠΎΠΉ строкС ΠΊΠΎΠ΄Π°.Β 

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

cat = ['толстый', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ', 'Π½Π°Π³Π»Ρ‹ΠΉ']
size = cat[0]
color = cat[1]
disposition = cat[2]

МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

cat = ['толстый', 'Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ', 'Π½Π°Π³Π»Ρ‹ΠΉ']
size, color, disposition = cat

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания

ΠŸΡ€ΠΈ присваивании значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ вы часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ саму ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. НапримСр, послС присвоСния 42 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ spam, Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Β spamΒ Π½Π°Β 1 ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

spam = 42
spam = spam + 1
spam
43

В качСствС ярлыка Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ присваивания +=, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΒ ΠΆΠ΅ самоС:

spam = 42
spam += 1
spam
43

Π’Π°Π±Π»ΠΈΡ†Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² присваивания

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π­Π²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°
Β spam += 1Β spam = spam + 1
Β spam -= 1Β spam = spam — 1
Β spam *= 1Β spam = spam * 1
Β spam /= 1Β spam = spam / 1
Β spam %= 1Β spam = spam % 1

+=Β Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ строк и списков, Π°Β *=Β ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ строк и списков.

spam = 'Hello'
spam += ' world!'
spam
'Hello world!'
pet = ['ΠœΡƒΡ€Π·ΠΈΠΊ']
pet *= 3
pet
['ΠœΡƒΡ€Π·ΠΈΠΊ', 'ΠœΡƒΡ€Π·ΠΈΠΊ', 'ΠœΡƒΡ€Π·ΠΈΠΊ']

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ списков

ΠœΠ΅Ρ‚ΠΎΠ΄ β€” это Ρ‚ΠΎΒ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ и функция, Π·Π°Β ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ он «вызываСтся» для значСния.

НапримСр, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка Π±Ρ‹Π»ΠΎ сохранСно Π²Β spam, Π²Ρ‹Β Π±Ρ‹ Π²Ρ‹Π·Π²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ списка index()Β (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я объясню Π΄Π°Π»Π΅Π΅) в этом спискС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:Β spam.index(‘hello’). Π§Π°ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ΄Π΅Ρ‚ послС значСния, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². НапримСр, Ρ‚ΠΈΠΏ data ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для поиска, добавлСния, удалСния ΠΈΒ Π΄Ρ€ΡƒΠ³ΠΈΡ… манипуляций со значСниями в спискС.

Поиск значСния в спискС ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° index ()

Π£Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Β index(), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ, Ссли это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сущСствуСт в спискС, возвращаСтся индСкс значСния. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ отсутствуСт в спискС, Ρ‚ΠΎΒ Python выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ ValueError.

spam = ['hello', 'hi', 'howdy', 'heyas']
spam.index('hello')
0

spam.index('heyas')
3

spam.index('howdy howdy howdy')
Traceback (most recent call last):
  File "<pyshell#31>", line 1, in 
    spam.index('howdy howdy howdy')
ValueError: 'howdy howdy howdy' is not in list

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² значСния в спискС возвращаСтся индСкс Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ появлСния. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΒ index()Β Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 1, Π°Β Π½Π΅Β 3.

spam = ['Один', 'Π”Π²Π°', 'Π’Ρ€ΠΈ', 'Один']
spam.index('Один')
1

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² append() ΠΈΒ insert()

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ значСния в список, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ append() ΠΈΒ insert().

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']
spam.append('ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ')
spam
['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°', 'ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ']

ΠœΠ΅Ρ‚ΠΎΠ΄Β append() добавляСт Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π²Β ΠΊΠΎΠ½Π΅Ρ† списка. ΠœΠ΅Ρ‚ΠΎΠ΄Β insert()Β ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΒ Π»ΡŽΠ±ΠΎΠΌΡƒ индСксу в спискС.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ для insert()Β β€” это индСкс для Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния, Π°Β Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Β β€” это Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ.

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']
spam.insert(1, 'ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ')
spam
['кошка', 'ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°' ]

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ из списка ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° remove ()

ΠœΠ΅Ρ‚ΠΎΠ΄Β remove() ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ из списка, ΠΊΒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½Β ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½.

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']
spam.remove('ΠΌΡ‹ΡˆΠΊΠ°')
spam
['кошка', 'собака']

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ появляСтся в спискС нСсколько Ρ€Π°Π·, Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ экзСмпляр значСния.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Β delΒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Β Π·Π½Π°Π΅Ρ‚Π΅ индСкс значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ из списка. ΠœΠ΅Ρ‚ΠΎΠ΄Β remove()Β Ρ…ΠΎΡ€ΠΎΡˆ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Β Π·Π½Π°Π΅Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ из списка.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° sort()

Бписки числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ списки строк ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ отсортированы ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Β sort().

spam = [2, 5, 3.14, 1, -7]
spam.sort()
spam
[-7, 1, 2, 3.14, 5]

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°', 'ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ']
spam.sort()

spam
['кошка', 'ΠΌΡ‹ΡˆΠΊΠ°', 'ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ', 'собака']

МоТно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ True для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹Β sort () сортировал значСния Π²Β ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

spam = ['кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°', 'ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ']
spam.sort(reverse=True)
spam
['собака', 'ΠΏΠΎΠΏΡƒΠ³Π°ΠΉ', 'ΠΌΡ‹ΡˆΠΊΠ°', 'кошка']

Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Β Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΎΒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅Β sort().Β 

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠ΅Ρ‚ΠΎΠ΄Β sort() сортируСт список по мСсту; поэтому Π½Π΅Β ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, написав Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ spam = spam.sort().

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π²Ρ‹Β Π½Π΅Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ списки, Π²Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ числовыС, Ρ‚Π°ΠΊ и строковыС значСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Python Π½Π΅Β Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ эти значСния.

spam = [1, 3, 2, 4, 'кошка', 'ΠΌΡ‹ΡˆΠΊΠ°']
 spam.sort()
Traceback (most recent call last):
  File "<pyshell#70>", line 1, in 
    spam.sort()
TypeError: unorderable types: str() < int()

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…,Β sort()Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Β«ASCII порядок», а нС фактичСский Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ порядок для сортировки строк. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ ΠΈΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ строчными. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ строчная Π±ΡƒΠΊΠ²Π° a сортируСтся Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° шла послС Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹ Z.

spam = ['Васян', 'Виша', 'ΠœΡƒΡ€Π·ΠΈΠΊ', 'кошка', 'собака', 'ΠΌΡ‹ΡˆΠΊΠ°']
spam. sort()
spam
['Васян', 'ΠœΡƒΡ€Π·ΠΈΠΊ', 'Виша', 'кошка', 'ΠΌΡ‹ΡˆΠΊΠ°', 'собака']

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния Π²Β ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС, ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ str.lower для ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π²Β Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Β sort().

spam = ['a', 'z', 'A', 'Z']
spam.sort(key=str.lower)
spam
['a', 'A', 'z', 'Z']

Π­Ρ‚ΠΎ заставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sort() ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС элСмСнты в спискС, ΠΊΠ°ΠΊ Ссли бы ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ строчными, Π±Π΅Π· фактичСского измСнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ в спискС.

Бписки Π½Π΅Β ΡΠ²Π»ΡΡŽΡ‚ΡΡ СдинствСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ упорядочСнныС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

НапримСр, строки и списки на самом Π΄Π΅Π»Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈ, Ссли ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ строку Β«listΒ» однотСкстовых символов. МногоС ΠΈΠ·Β Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ со списками, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлано со строками: индСксы; срСзы; ΠΈΒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ их с for, с len() и с опСраторами inΒ ΠΈΒ not in.

name = 'Π‘ΠΎΠ±ΠΈΠΊ'
name[0]
'Π‘'

name[-2]
'ΠΈ'

 name[0:]
'Π‘ΠΎΠ±ΠΈΠΊ'

'Π‘ΠΎ' in name
True

'Π±' in name
False

'ΠΈ' not in name
False

for i in name:
   print('* * * ' + i + ' * * *')

* * * Π‘ * * *
* * * ΠΎ * * *
* * * Π± * * *
* * * ΠΈ * * *
* * * ΠΊ * * *

Π˜Π·ΠΌΠ΅Π½ΡΠ΅ΠΌΡ‹Π΅ и нСизмСняСмыС Ρ‚ΠΈΠΏΡ‹

Бписки и строки Π²Π°ΠΆΠ½Ρ‹ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка являСтся измСняСмым Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…: ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅, ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅. Однако строка являСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ: СС нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ символ в строкС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ к ошибкС TypeError.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ строку измСняСмой — это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз ΠΈΒ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ для построСния Π½ΠΎΠ²ΠΎΠΉ строки ΠΏΡƒΡ‚Π΅ΠΌ копирования из частСй старой строки.

name = 'ΠšΠΎΡˆΠΊΡƒ Π·Π²Π°Ρ‚ΡŒ ΠœΡƒΡΡ'
newName = name[0:5] + ' Π·ΠΎΠ²ΡƒΡ‚ ' + name[12:16]

name
ΠšΠΎΡˆΠΊΡƒ Π·Π²Π°Ρ‚ΡŒ ΠœΡƒΡΡ

newName
ΠšΠΎΡˆΠΊΡƒ Π·ΠΎΠ²ΡƒΡ‚ ΠœΡƒΡΡ

ΠœΡ‹Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΠΈΒ [0:5]Β ΠΈΒ [12:16] для обозначСния символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹Β Π½Π΅Β Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ исходная строка Β«ΠšΠΎΡˆΠΊΡƒ Π·Π²Π°Ρ‚ΡŒ ΠœΡƒΡΡΒ» нС измСняСтся, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΡ‚Ρ€ΠΎΠΊΠΈΒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмыми.

Π₯отя Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка являСтся измСняСмым, вторая строка Π²Β ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ нС измСняСт список Π²Β eggs.

eggs = [1, 2, 3]
eggs = [4, 5, 6]

eggs
[4, 5, 6]

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка Π²Β eggs здСсь нС измСняСтся; Π½ΠΎΠ²ΠΎΠ΅ ΠΈΒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка ([4, 5, 6]) пСрСзаписываСт староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка ([1, 2, 3]). Если Π²Ρ‹Β Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ исходный список Π²Β eggs, Ρ‡Ρ‚ΠΎΠ±Ρ‹ он содСрТал [4, 5, 6], Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ этого:

eggs = [1, 2, 3]


del eggs[2]
del eggs[1]
del eggs[0]

eggs.append(4)
eggs.append(5)
eggs.append(6)


eggs
[4, 5, 6]

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Tuple (ΠšΠΎΡ€Ρ‚Π΅ΠΆ)

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΡ€Ρ‚Π΅ΠΆ практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ… списки, Π·Π°Β ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π²ΡƒΡ… способов. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ΡΡ с круглыми скобками (ΠΈ) вмСсто ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок [ΠΈ].

eggs = ('hello', 42, 0.5)

eggs[0]
'hello'

eggs[1:3]
(42, 0.5)

len(eggs)
3

Но основной способ отличия ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ от списков Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π²Β Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΊΠ°ΠΊ и строки, ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмыми. ΠšΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ их значСния. Если Π²Ρ‹Β ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ индСкс Π²Β ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅, Ρ‚ΠΎΒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ TypeError.

eggs = ('hello', 42, 0.5)
eggs[1] = 99
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in 
    eggs[1] = 99
TypeError: 'tuple' object does not support item assignment

Если Π²Β ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ это, помСстив Π·Π°ΠΏΡΡ‚ΡƒΡŽ послС значСния в скобках. Π’Β ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Python Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Β Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Β ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… скобках. Запятая — это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Python Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°.

type(('hello',))
<class 'tuple'>

type(('hello'))
<class 'str'>

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

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ list() ΠΈΒ tuple()

Π’Π°ΠΊΒ ΠΆΠ΅, ΠΊΠ°ΠΊΒ str(42) Π²Π΅Ρ€Π½Π΅Ρ‚ ’42’, строковоС прСдставлСниС Ρ†Π΅Π»ΠΎΠ³ΠΎ числа 42, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΒ list() ΠΈΒ tuple() Π²Π΅Ρ€Π½ΡƒΡ‚ вСрсии списка ΠΈΒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌ.

tuple(['кошка', 'собака', 5])
('кошка', 'собака', 5)

list(('кошка', 'собака', 5))
['кошка', 'собака', 5]

list('hello')
['h', 'e', 'l', 'l', 'o']

Бсылки

Как извСстно, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ хранят строки ΠΈΒ Ρ†Π΅Π»Ρ‹Π΅ значСния.

spam = 42
cheese = spam
spam = 100

spam
100

cheese
42

Вы присваиваСтС 42 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ spam, Π°Β Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Β spam и присваиваСтС Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ cheese. Когда Π²Ρ‹Β ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Β spam Π½Π°Β 100, это нС повлияСт Π½Π°Β Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Β cheese. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΒ spam ΠΈΒ cheeseΒ β€” это Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π²Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся Ρ€Π°Π·Π½Ρ‹Π΅ значСния.

Но списки Π½Π΅Β Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Когда Π²Ρ‹Β Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚Π΅ список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, вы фактичСски Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚Π΅ ссылку на список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Бсылка — это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°Β Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Ρ…, а ссылка на список — это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ на список. Π’ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ этого различия.

# 1
spam = [0, 1, 2, 3, 4, 5]
# 2
cheese = spam
# 3
cheese[1] = 'Hello!'

spam
[0, 'Hello!', 2, 3, 4, 5]

cheese
[0, 'Hello!', 2, 3, 4, 5]

1. Когда вы создаСтС список, вы присваиваСтС Π΅ΠΌΡƒ ссылку Π²Β ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ spam.

2. ΠΠΎΒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ список spam Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылку Π½Π°Β cheese, а нС само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ значСния, хранящиСся Π²Β spam ΠΈΒ cheese, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ относятся ΠΊΒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΒ Ρ‚ΠΎΠΌΡƒΒ ΠΆΠ΅ списку. БущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ список, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ сам список фактичСски Π½ΠΈΠΊΠΎΠ³Π΄Π° нС копировался.

3. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° вы измСняСтС ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт cheese, вы измСняСтС Ρ‚ΠΎΡ‚Β ΠΆΠ΅ список, Π½Π°Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся spam.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылки на значСния списка, а нС сами значСния списка. Но для строк ΠΈΒ Ρ†Π΅Π»Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ просто содСрТат строковоС ΠΈΠ»ΠΈ Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Python ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ссылки всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния измСняСмых Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ списки ΠΈΠ»ΠΈ словари. Для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ нСизмСняСмых Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ строки, Ρ†Π΅Π»Ρ‹Π΅ числа ΠΈΠ»ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Python Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π₯отя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Python тСхничСски содСрТат ссылки на значСния списка ΠΈΠ»ΠΈ словаря, люди часто говорят, Ρ‡Ρ‚ΠΎ пСрСмСнная содСрТит список ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ссылок

Бсылки особСнно Π²Π°ΠΆΠ½Ρ‹ для понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ функциям. Когда вызываСтся функция, значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²Β ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Для списков и словарСй это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ копия ссылки. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ послСдствия этого, посмотритС на этот ΠΊΠΎΠ΄.

def eggs(someParameter):
    someParameter.append('Hello')
    
spam = [1, 2, 3]
eggs(spam)
print(spam)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅Β eggs () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для присвоСния Π½ΠΎΠ²ΠΎΠ³ΠΎ значСния Π²Β spam. ВмСсто этого он измСняСт список на мСстС, Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. ΠŸΡ€ΠΈ запускС эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

[1, 2, 3, 'Hello']Β 

Π₯отя spamΒ ΠΈΒ someParameter содСрТат ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ссылки, ΠΎΠ½ΠΈ ΠΎΠ±Π° ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π°Β ΠΎΠ΄ΠΈΠ½ ΠΈΒ Ρ‚ΠΎΡ‚Β ΠΆΠ΅ список. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° append (‘Hello’) Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ влияСт на список Π΄Π°ΠΆΠ΅ послС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅: Π·Π°Π±Ρ‹Π², Ρ‡Ρ‚ΠΎ Python ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ списка и словаря Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊΒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Π΅.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ copy() ΠΈΒ deepcopy()

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ссылок часто являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ способом Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками и словарями, Ссли функция измСняСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ список ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ. Но возмоТно, Π²Ρ‹Β Π½Π΅Β Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ эти измСнСния в исходноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка ΠΈΠ»ΠΈ словаря. Для этого Python прСдоставляСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с имСнСм copy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ copy() ΠΈΒ deepcopy(). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ·Β Π½ΠΈΡ…, copy.copy(), ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для создания Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉΡΡ ΠΊΠΎΠΏΠΈΠΈ измСняСмого значСния, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ список ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ, а нС просто ΠΊΠΎΠΏΠΈΠ΅ΠΉ ссылки.

import copy spam = ['A', 'B', 'C', 'D']
cheese = copy.copy(spam) 
cheese[1] = 42 
spam ['A', 'B', 'C', 'D'] 
cheese ['A', 42, 'C', 'D']

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ spam ΠΈΒ cheese ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π°Β ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ списки, поэтому ΠΏΡ€ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ 42 для индСкса 7 измСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ список Π²Β cheese. Как Π²ΠΈΠ΄Π½ΠΎ на рисункС, ссылки Π½Π°Β ID большС Π½Π΅Β ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΎΠ±ΠΎΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ на нСзависимыС списки.Β  Если список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, содСрТит списки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ copy. deepcopy() вмСсто copy.copy(). Ѐункция deepcopy() Ρ‚Π°ΠΊΠΆΠ΅ скопируСт эти Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ списки.


Бписки ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с измСняСмым числом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Β ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Бписки ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²Ρ‹, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ их содСрТимоС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ.Β 

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ и строки, хотя Π²Β Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΏΠΎΡ…ΠΎΠΆΠΈ на списки, ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмыми ΠΈΒ Π½Π΅Β ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, которая содСрТит ΠΊΠΎΡ€Ρ‚Π΅ΠΆ ΠΈΠ»ΠΈ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пСрСзаписана Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΌ ΠΈΠ»ΠΈ строковым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, но это Π½Π΅Β Ρ‚ΠΎΒ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ модификация ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ значСния на мСстС — ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°ΡŽΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ append() ΠΈΠ»ΠΈ remove(). ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ нС хранят значСния списка Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ; ΠΎΠ½ΠΈ хранят ссылки на списки.Β 

Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ списков в качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Β Π²Ρ‹Π·ΠΎΠ²Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся ссылкой на список, ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π²Β Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ измСнСния, внСсСнныС в список, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π°Β Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ в вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’Ρ‹Β ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ copy() ΠΈΠ»ΠΈ deepcopy(), Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти измСнСния в список Π²Β ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π· измСнСния исходного списка.

Если Ρƒ вас Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ получаСтся ΠΈΠ»ΠΈ Π΅ΡΡ‚ΡŒ вопросы, ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях.

ΠŸΡ€ΠΎΡΡŒΠ±Π° ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΡΡ‚Π°Ρ‚ΡŒΡ‘ΠΉ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях. Π‘ΠΎΠ»ΡŒΡˆΠ΅ ссылок, большС шансов Π½Π°ΠΉΡ‚ΠΈ эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками Python

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим популярныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками Python. Π§Π°Ρ‰Π΅ всСго Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты для сортировки рСвСрса Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка ΡΠΎΠ·Π΄Π°ΡŽΡ‚ свои ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° называСтся описаниСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π­Ρ‚ΠΎ лишняя Ρ€Π°Π±ΠΎΡ‚Π°. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ для простых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ со списками. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ поисковики: yandex, google.


#!/usr/bin/python3
arr = [1,2,3]
# Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΠΊΠΎΠ½Π΅Ρ† списка
arr. append(4)
print(list(arr))
'''
Π²Ρ‹Π²ΠΎΠ΄:
[1, 2, 3, 4]
'''

Для добавлСния Π² ΠΊΠΎΠ½Π΅Ρ† списка Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ extend.


arr = [1,2,3]
# Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ списка Π² ΠΊΠΎΠ½Π΅Ρ†
b=['a','b','c']
arr.extend(b)
print(list(arr))
'''
Π²Ρ‹Π²ΠΎΠ΄:
[1, 2, 3, 'a', 'b', 'c']
'''

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Ρ‚ΠΎ примСняйтС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ insert. Π― ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ вставил элСмСнт 10 Π²ΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π° Π½Π΅ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ. Π­Ρ‚ΠΎ для понимания.


arr = [1,2,3]
# вставляСт элСмСнт 10 Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄ индСксом 1 Π² спискС
arr.insert(1,10)
print(list(arr))
'''
Π²Ρ‹Π²ΠΎΠ΄:
[1, 10, 2, 3]
'''

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт списка ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Если ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для удалСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.


arr = [1,2,3]
# удаляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт 1 ΠΈΠ· списка 
arr.remove(1)
print(list(arr))
'''
Π²Ρ‹Π²ΠΎΠ΄:
[2, 3]
'''

Ѐункция pop Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² PHP. Она Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ элСмСнт ΠΈ удаляСт Π΅Π³ΠΎ ΠΈΠ· списка. Π”Π΅Π»Π°Π΅Ρ‚ Π΄Π²Π° дСйствия сразу.


arr = [1,2,3]
# удаляСт элСмСнт с индСксом 1 ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ
res = arr.pop(1)
print(list(arr), 'ΡƒΠ΄Π°Π»Π΅Π½ΠΎ: ' + str(res))
'''
Π²Ρ‹Π²ΠΎΠ΄:
[1, 3] ΡƒΠ΄Π°Π»Π΅Π½ΠΎ: 2
'''

Ѐункция index Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс(ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ) ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² спискС. ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ значСния(3) 2, Π° Π½Π΅ 3. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ отсчёт ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ элСмСнтов вСдётся ΠΎΡ‚ 0 (0,1,2,3…)


arr = [1,2,3]
# Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс(ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ) ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² спискС. 
index = arr.index(3) 
print('index' , index)
'''
Π²Ρ‹Π²ΠΎΠ΄:
index 2
'''

Для подсчёта количСства Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта сущСствуСт функция count. Π― ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΌΠ½ΠΎΠΆΠΈΠ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 Π² спискС.


arr = [1,2,3,2,2]
# Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»-Π²ΠΎ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ элСмСнта 2 Π² список
count_element = arr.count(2)
print(count_element)
'''
Π²Ρ‹Π²ΠΎΠ΄:
3
'''

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты списка ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ. Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ числа ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ послС сортировки ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ reverse. НиТС смотритС ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ числа ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строки нСльзя. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ сортировку ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ элСмСнты списка Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.


arr = [2,1,3]
# сортируСт элСмСнты списка ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ
arr.sort()
'''
Ссли Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊ: arr = [2,1,3,'string']
Traceback (most recent call last):
  File "./list.py", line 58, in 
    arr.sort()
TypeError: unorderable types: str() 

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сортировку ΠΈ рСвСрс совмСстно. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€.


arr=[1,2,5,3,6]
arr.sort(reverse=True)
print(arr)
#Π²Ρ‹Π²ΠΎΠ΄:[6, 5, 3, 2, 1]

arr.sort(reverse=False)
print(arr)
 #Π²Ρ‹Π²ΠΎΠ΄: [1, 2, 3, 5, 6]

Ѐункция reverse ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка Π·Π°Π΄Π°ΠΌ Π½Π°ΠΏΠ΅Ρ€Ρ‘Π΄. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.


arr = [1,2,3]
# ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ порядок слСдования элСмСнтов
arr.reverse() 
print(list(arr))
'''
Π²Ρ‹Π²ΠΎΠ΄:
[3, 2, 1]
'''

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты опишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list. Π­Ρ‚ΠΎ Π½Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΠ΅ занятиС, Π½ΠΎ для обучСния Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚.


def get_arr(param):
    '''
    get_arr - функция для Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ списка
    '''
    for key in param:
        print(key)

arr = ['Python', 'Ruby','PHP','Javascript',1,2,3]
get_arr(arr)
'''
Π²Ρ‹Π²ΠΎΠ΄:
Python
Ruby
PHP
Javascript
1
2
3
'''

Для очистки списка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ clear. Она ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ список.


arr = [1,2,3,4]
arr.clear()
print(list(arr))
print('ΠΊΠΎΠ»-Π²ΠΎ:', len(arr))
'''
Π²Ρ‹Π²ΠΎΠ΄:
[]
ΠΊΠΎΠ»-Π²ΠΎ: 0
'''


просмотры: 4325,
ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ: Π»Ρ‘Π³ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ,
Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³: 0,
Π΄Π°Ρ‚Π°: 2017-07-06 09:38:52

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Бписки Π² Python. Π£Π³Π»ΡƒΠ±Π»Π΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… список (list) Π² Python ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт программиста. Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΎΡ‚ использования списков Π² Python слСдуСт Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠ΅ΠΌΠ°ΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌΠΈ.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ:

Как Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ список Π² Python

Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π² Python

Как ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ элСмСнты ΠΈΠ· подсписков Π² Python.

Как Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ список Π² Python.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ сСбС ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ — Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ всС элСмСнты списка ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… своСй ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ список ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈ содСрТащий ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты:

person_data = ["John", "Smith", 23, "programmer"]

Β Π’ΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· этого списка ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎ-ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всС элСмСнты слСдуСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:

user_name, user_surname, user_age, user_occupation = person_data

 ПослС этого ΠΌΡ‹ смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ количСство создаваСмых ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ количСству элСмСнтов Π² спискС, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π² Python.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ списков Π² Python Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ однострочныС конструкции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ списки.

Бинтаксис Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² списков Ρ‚Π°ΠΊΠΎΠΉ:

# самый простой Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€
new_list = [x for x in range(10)]

Π’ ΠΈΡ‚ΠΎΠ³Π΅ new_list Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ числа ΠΎΡ‚ 0 Π΄ΠΎ 9. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ список Π½Π΅Π·Π°Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Достаточно просто Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ range()

# ΠΏΡ€ΠΈΠΌΠ΅Ρ€ послоТнСС
word = "hello"
new_list = [x for x in word]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ new_list Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

['h','e','l','l','o']

Π’Π°ΠΊ ΠΆΠ΅ Π² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ списков ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ if:

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ список ΠΈΠ· чисСл ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… Ρ‚Ρ€Π΅ΠΌ
new_list = [num for num in range(30) if num % 3 == 0]

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

НаконСц, Π² Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько списков ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

# созданиС ΠΊΠΎΠ»ΠΎΠ΄Ρ‹ ΠΊΠ°Ρ€Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° списков

# масти
suits = "HDCS"
# Ρ€Π°Π½Π³ΠΈ
ranks = "23456789TJQKA"

# Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ»ΠΎΠ΄Ρƒ
deck = [r+s for r in ranks for s in suits]

Β ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΡ‹ сэкономили, написав всСго ΠΎΠ΄Π½Ρƒ строчку вмСсто Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠ².

Π’Π°ΠΊ ΠΆΠ΅, часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ элСмСнты ΠΈΠ· подспиков списка.

НапримСр ΠΈΠΌΠ΅Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ список:

outer = [[1,2,3], [4,5,6], [7,8,9]]

Β Π—Π°Π΄Π°Ρ‡Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ список содСрТащий всС элСмСнты подсписков Π΄Π°Π½Π½ΠΎΠ³ΠΎ списка. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ всС Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° списков:

new_list = [item for sublist in outer for item in sublist]

Β Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ список со всСми элСмСнтами:

На этом Π½Π° сСгодня всС. Π£Π΄Π°Ρ‡ΠΈ Π² освоСнии Python!

ВнутрСнняя Ρ€Π°Π±ΠΎΡ‚Π° списка Π² Python

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² списки Python:
Бписки Python Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ прСдставлСны Π² Π²ΠΈΠ΄Π΅ массивов. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ идСя Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π² C ++ ΠΈΠ»ΠΈ ArrayList Π² Java. ДорогостоящиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ — это вставка ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² самом Π½Π°Ρ‡Π°Π»Π΅ (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΎ). Вставка Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ‚Π°ΠΊΠΆΠ΅ становится дорогостоящСй, Ссли ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ пространство заполняСтся.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список Π½Π° Python, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту списка Π² Python ΠΏΠΎ присвоСнному ΠΈΠΌ индСксу.Π’ Python Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ списка Ρ€Π°Π²Π΅Π½ 0, Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ индСкс (Ссли Π΅ΡΡ‚ΡŒ N элСмСнтов) N-1.

Π’Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ списках массивов, Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ индСкс, начиная с -N (Ссли N элСмСнтов Π² спискС) Π΄ΠΎ -1.

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

список1 = [ 1 , 2 , 3 , 4 ]

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1 [ 1 ])

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1 [ 1 : 4 ])

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1 [ - 1 ])

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ доступ ΠΊ Π½ΠΈΠΌ:
Для создания списка Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ элСмСнты Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках Β«[]Β», Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ имя.Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам списка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ это имя списка ΠΈ индСкс элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ.
ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π² спискС присваиваСтся индСкс, ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ индСксации Ρƒ нас Π΅ΡΡ‚ΡŒ индСкс ΠΎΡ‚ 0 Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° списка, Π° ΠΏΡ€ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ индСксации Ρƒ нас Π΅ΡΡ‚ΡŒ индСкс ΠΎΡ‚ -N (Ссли элСмСнты N) Π΄ΠΎ -1.
Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅, доступ ΠΊ элСмСнтам осущСствляСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам ΠΈΠ»ΠΈ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»Ρ‹.

список1 = []

для i в диапазонС ( 0 , 11 ):

список1.добавлСниС (i)

для i в диапазонС ( 0 , 11 ):

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1 [i])

ОбновлСниС списка:
ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ элСмСнты Π² список, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту Π² ваш список. Π”Π°ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ свой список, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ список Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ список.
Π’Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

список1 = [ 1 , 2 , 3 , 4 ]

список1 [ 2 ] = 5

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1)

список1.Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ( 6 )

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1)

list1.extend ([ 1 , 2 , 3 ])

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1)

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. append () ΠΈ extend () встроСны Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² Python для списков.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов списка:
ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнты Π² списках, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ del.ΠŸΡ€ΠΈ этом Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся индСксом элСмСнта, ΠΈ этот элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· списка, Π° индСкс Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½.

На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ элСмСнт 3 Π² индСксС 2 Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½, Π° послС этого индСкс Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½.

список1 = [ 1 , 2 , 3 , 4 , 5 ]

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1)

del list1 [ 2 ]

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список1)

Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ слоТности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Эксплуатация

Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ случай

ΠΠ°ΠΈΡ…ΡƒΠ΄ΡˆΠΈΠΉ случай с Π°ΠΌΠΎΡ€Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ

Копия О (н) О (н)
ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ [1] О (1) О (1)
Pop послСдняя О (1) О (1)
Поп-срСдний

О (к)

О (к)

Вставка

О (н)

О (н)

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ О (1) О (1)
ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ О (1) О (1)
Π£Π΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт О (Π½) О (Π½)
Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ О (Π½) О (Π½)
ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠΌΡ‚ΠΈΠΊ O (ΠΊ) O (ΠΊ)
Del Slice О (н) О (н)
Набор Π»ΠΎΠΌΡ‚ΠΈΠΊΠΎΠ² О (ΠΊ + ΠΏ) О (ΠΊ + ΠΏ)
Π£Π΄Π»ΠΈΠ½ΠΈΡ‚ΡŒ [1] O (ΠΊ) O (ΠΊ)
Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ O (n log n) O (n log n)
Π£ΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ О (Π½ΠΊ) О (Π½ΠΊ)
x дюймов О (н) О (н)
мин (с), макс (с) О (н) О (н)
ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ

О (1)

О (1)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Python Wiki

Бписок Python ΠΈ Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‰ΠΈΠΊ! Π£ΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ свои основы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python Programming Foundation ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ основы.

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ собСсСдованию. Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ свои ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python DS .



Если Π²Π°ΠΌ нравится GeeksforGeeks ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ внСсти свой Π²ΠΊΠ»Π°Π΄, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ serve.geeksforgeeks.org ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ ΠΏΠΎ адрСсу [email protected]. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ваша ΡΡ‚Π°Ρ‚ΡŒΡ появляСтся Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС GeeksforGeeks, ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π³ΠΈΠΊΠ°ΠΌ.

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚Π΅ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽΒ» Π½ΠΈΠΆΠ΅.

Π’Π΅Π³ΠΈ статСй:

Python | Набор 3 (строки, списки, ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ, ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ)

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ‡ΠΈΡ‚Π°Π»ΠΈ ΠΎΠ± основах Python. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ концСпциями Python.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Python
Π‘Ρ‚Ρ€ΠΎΠΊΠ° — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π² Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ нСизмСняСмы, Ρ‚. Π•. НС ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹.

ΠŸΠΈΡ‚ΠΎΠ½

a = Β«Π­Ρ‚ΠΎ строка»

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°)

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

ΠŸΠΈΡ‚ΠΎΠ½

L = [ 1 , "a" , "строка" , 1 + 2 ]

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ L

Π».Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ( 6 )

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ L

L.pop ()

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ L

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ L [ 1 ]

Π’Ρ‹Π²ΠΎΠ΄:

 [1, 'a', 'строка', 3]
[1, 'a', 'строка', 3, 6]
[1, 'a', 'строка', 3]
Π°


 

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² Python
ΠšΠΎΡ€Ρ‚Π΅ΠΆ — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ нСизмСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Python.ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° списки, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ послС объявлСния. ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ быстрСС списков.

ΠŸΠΈΡ‚ΠΎΠ½

Ρ‚ΡƒΠΏ = ( 1 , "a" , "строка" , 1 + 2 )

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ‚ΡƒΠΏ)

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ‚ΡƒΠΏ [ 1 ])

Π’Ρ‹Π²ΠΎΠ΄:

 (1, 'Π°', 'строка', 3)
Π°


 

Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² Python
Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»ΠΎΠ² Β«forΒ» ΠΈ Β«whileΒ».Помимо ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ строкам, спискам ΠΈ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ°ΠΌ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° while для условия

ΠŸΠΈΡ‚ΠΎΠ½

i = 1

, Π° (i < 10 ):

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (i)

i + = 1

Π’Ρ‹Π²ΠΎΠ΄:

 1 2 3 4 5 6 7 8 9


 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for для строки

ΠŸΠΈΡ‚ΠΎΠ½

с = «Hello World»

для i дюйм с:

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (i)

Π’Ρ‹Π²ΠΎΠ΄:

 H
Π΅
Π»
Π»
ΠΎ
 
W
ΠΎ
Ρ€
Π»
d


 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for Π² спискС

ΠŸΠΈΡ‚ΠΎΠ½

L = [ 1 , 4 , 5 , 7 , 8 , 9 ]

для i дюйм L:

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (i)

Π’Ρ‹Π²ΠΎΠ΄:

 1 4 5 7 8 9


 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 4: Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ Ρ†ΠΈΠΊΠ»ΠΎΠΌ for для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°

ΠŸΠΈΡ‚ΠΎΠ½

для i в диапазонС ( 0 , 10 ):

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (i)

Π’Ρ‹Π²ΠΎΠ΄:

 0 1 2 3 4 5 6 7 8 9

 

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‰ΠΈΠΊ! Π£ΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ свои основы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python Programming Foundation ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ основы.

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ собСсСдованию. Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ свои ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python DS .

Бписки Руководства ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ | Python

Бписки

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

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

Бписки ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ·ΠΆΠ΅ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ.ΠœΡ‹ рассмотрим ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ for Π² Π½Π°ΡˆΠΈΡ… руководствах ΠΏΠΎ Ρ†ΠΈΠΊΠ»Π°ΠΌ for.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список:

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список, Π²Ρ‹ раздСляСтС элСмСнты запятой ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ ΠΈΡ… Π² скобку Β«[]Β».

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, содСрТащий Β«hackerearthΒ», Β«googleΒ», Β«facebookΒ». Π­Ρ‚ΠΎ сохранит порядок ΠΈΠΌΠ΅Π½.

  >>> companies = ["hackerearth", "google", "facebook"]
>>> # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
>>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ [0])
'hackerearth'
>>> # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
>>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ [1])
"Π³ΡƒΠ³Π»"
>>> # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
>>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ [2])
'facebook'
>>> # ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
>>> # Π½ΠΎ это Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ ΠΈΠΌΠ΅Π½ΠΈ
>>> # ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹.>>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ [3])
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
IndexError: список индСкса Π²Π½Π΅ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°
  

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС.
Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список. Π­Ρ‚ΠΎ дСлаСтся ΠΏΡƒΡ‚Π΅ΠΌ влоТСния списка Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ список.
НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Β«hackerearthΒ» ΠΈ Β«paytmΒ» Π² ΠΎΠ΄ΠΈΠ½ список, Π° Β«tcsΒ» ΠΈ Β«ctsΒ» - Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΈ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° списка Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Β«Π³Π»Π°Π²Π½Ρ‹ΠΉΒ» список.

  >>> companies = [["hackerearth", "paytm"], ["tcs", "cts"]]
>>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ)
[['hackerearth', 'paytm'], ['tcs', 'cts']]
  

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π΄ списками Python

Бписки Python

ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со списками.ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ список Π½Π° мСстС. (ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… Π² ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ΅ ΠΏΠΎ классам ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния Π² список ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ старый, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ список, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, описанныС послС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнты Π² список:

  • list.append (elem) - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт Π² список Π² ΠΊΠΎΠ½Ρ†Π΅.
      >>> # создаСм пустой список
    >>> ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ = []
    
    >>> # добавляСм в компании "hackerearth"
    >>> ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (Β«hackerearthΒ»)
    
    >>> # Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ "google" Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
    >>> companies.append ("Π³ΡƒΠ³Π»")
    
    >>> # Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ "facebook" Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
    >>> companies.append ("facebook")
    
    >>> # Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, хранящиСся Π² компаниях
    >>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ)
    ['hackerearth', 'google', 'facebook']
      

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ элСмСнты Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ вставлСны.

  • list.insert (index, element) - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ элСмСнт Π² список ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ индСксу, сдвинув элСмСнты большС индСкса Π½Π° ΠΎΠ΄ΠΈΠ½ шаг Π²ΠΏΡ€Π°Π²ΠΎ.Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, элСмСнты с индСксом большС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ индСкса ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ['hackerearth', 'google', 'facebook'] ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Β«airbnbΒ» Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Β«facebookΒ».

  >>> # ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ список ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ
    >>> companies = ['hackerearth', 'google', 'facebook']

    >>> # провСряСм, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2
    >>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ [2])
    facebook

    >>> # Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Β«airbnbΒ» Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ 2
    >>> ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.insert (2, Β«airbnbΒ»)
    >>> # Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ список ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ
    >>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ)
    ['hackerearth', 'google', 'airbnb', 'facebook']
    >>> # вывСсти Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2
    >>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ [2])
    airbnb
  
  • list.extend (another_list) - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ элСмСнты ΠΈΠ· списка 2 Π² ΠΊΠΎΠ½Π΅Ρ† списка.

НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° списка ["haskell", "clojure", "apl"] ΠΈ ["scala", "F #"] Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ список langs .

  >>> langs = ["haskell", "clojure", "apl"]
    >>> langs.extend (["scala", "F #"])
    >>> print (langs)
    ['haskell', 'clojure', 'apl', 'scala', 'F #']
  
  • list.index (elem) - даст порядковый Π½ΠΎΠΌΠ΅Ρ€ элСмСнта Π² спискС.

НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ список языков с элСмСнтами ['haskell', 'clojure', 'apl', 'scala', 'F #'] , ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ индСкс Β«scalaΒ» , Π²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ индСкса.

  >>> index_of_scala = langs.index ("scala")
    >>> print (index_of_scala)
    3
  

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· списка:

  • list.remove (elem) - Π½Π°ΠΉΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ элСмСнта Π² спискС ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ Π΅Π³ΠΎ.

НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ список языков с элСмСнтами ['haskell', 'clojure', 'apl', 'scala', 'F #'] ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ scala, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ remove .

  >>> langs.remove ("scala")
    >>> print (langs)
    ['haskell', 'clojure', 'apl', 'F #']
  
  • list.pop () - ΡƒΠ΄Π°Π»ΠΈΡ‚ послСдний элСмСнт списка. Если ΡƒΠΊΠ°Π·Π°Π½ индСкс, ΠΎΠ½ ΡƒΠ΄Π°Π»ΠΈΡ‚ элСмСнт ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ индСксу.
    НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ список [5, 4, 3, 1] ΠΈ Π²Ρ‹ примСняСтС ΠΌΠ΅Ρ‚ΠΎΠ΄ pop , ΠΎΠ½ Π²Π΅Ρ€Π½Π΅Ρ‚ послСдний элСмСнт 1 , Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ спискС Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

      >>> # ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ список some_numbers
    >>> some_numbers = [5, 4, 3, 1]
    
    >>> # ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ список
    >>> some_numbers.ΠΏΠΎΠΏ ()
    1
    
    >>> # Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ список
    >>> print (some_numbers)
    [5, 4, 3]
      

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ элСмСнт ΠΈΠ· случайного индСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сущСствуСт Π² спискС.

  >>> # Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅ΠΌ элСмСнт ΠΏΠΎ индСксу 1
    >>> some_numbers.pop (1)
    4
    >>> # провСряСм Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ список
    >>> print (some_numbers)
    [5, 3]
  

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ списков

  • list.sort () - отсортируСт список Π½Π° мСстС.

НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ нСсортированный список [4,3,5,1] , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ sort .

  >>> # ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсортированный список some_numbers
    >>> some_numbers = [4,3,5,1]

    >>> # ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список
    >>> some_numbers.sort ()

    >>> # Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, отсортирован Π»ΠΈ ΠΎΠ½.
    >>> some_numbers
    [1, 3, 4, 5]
  
  • list.reverse () - ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½Π΅Ρ‚ список Π½Π° мСсто

НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ список [1, 3, 4, 5] ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ reverse .

  >>> # ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ список чисСл,
    >>> some_numbers = [1, 3, 4, 5]

    >>> # ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ список сСйчас
    >>> some_numbers.reverse ()

    >>> # распСчатайтС список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚.
    >>> print (some_numbers)
    [5, 4, 3, 1]
  

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π΄ списками Python:

  • Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β«lenΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ списка.

НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ список ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ['hackerearth', 'google', 'facebook'] ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Π΄Π»ΠΈΠ½Π° списка, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ len .

  >>> # Ρƒ вас Π΅ΡΡ‚ΡŒ список ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ
    >>> companies = ['hackerearth', 'google', 'facebook']

    >>> # Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ списка
    >>> print (len (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ))
    3
  
  • Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β«ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒΒ» Π½Π°Π΄ списком, это даст Π½Π°ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ для получСния ΠΊΠ°ΠΊ индСкса, Ρ‚Π°ΠΊ ΠΈ значСния элСмСнта Π² спискС.

НапримСр, Ρƒ вас Π΅ΡΡ‚ΡŒ список ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ['hackerearth', 'google', 'facebook'] , ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ индСкс вмСстС с элСмСнтами Π² спискС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ enumerate .

  >>> # ΠΏΠ΅Ρ€Π΅Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΠΉΡ‚Π΅ ΠΊΠ°ΠΊ индСкс, Ρ‚Π°ΠΊ ΠΈ имя.
    >>> для indx ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя Π² enumerate (ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ):
    ... print ("ИндСкс% s для компании:% s"% (indx, name))
    ...
    ИндСкс Ρ€Π°Π²Π΅Π½ 0 для ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ: hackerearth
    ИндСкс Ρ€Π°Π²Π΅Π½ 1 для ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ: google
    ИндСкс Ρ€Π°Π²Π΅Π½ 2 для ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ: facebook
  

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ†ΠΈΠΊΠ» for. Π¦ΠΈΠΊΠ»Ρ‹ For довольно распространСны Π²ΠΎ всСх языках программирования, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ конструкции.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ тСорСтичСскому справочнику ΠΏΠΎ Ρ†ΠΈΠΊΠ»Π°ΠΌ Π² C, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ прСдставлСниС ΠΎ Ρ†ΠΈΠΊΠ»Π°Ρ… for. Π’Π°ΠΊΠΆΠ΅ посмотритС ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Ρ†ΠΈΠΊΠ»Π°ΠΌ Π² Python Π² ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ΅ ΠΏΠΎ структурам управлСния Python.

    Ѐункция сортировки

  • отсортируСт список

Подобно ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ сортировки, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сортировки, которая Ρ‚Π°ΠΊΠΆΠ΅ сортируСт список. Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ отсортированный список, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ sort сортируСт список Π½Π° мСстС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ исходный список.

  >>> # ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список
    >>> some_numbers = [4,3,5,1]
    >>> # ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ отсортированный список
    >>> print (отсортировано (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅_числа))
    [1, 3, 4, 5]
    >>> # исходный список остаСтся Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
    >>> print (some_numbers)
    [4, 3, 5, 1]
  

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΠ»: Π”ΠΆΠΎΠΉΠ΄ΠΈΠΏ Π‘Ρ…Π°Ρ‚Ρ‚Π°Ρ‡Π°Ρ€Π΄ΠΆΠΈ

Бписок Python

с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ - ПолноС руководство ΠΏΠΎ списку Python

БСсплатный курс Python с 25 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ (ΠΊΠΎΠ΄ ΠΊΡƒΠΏΠΎΠ½Π°: DATAFLAIR_PYTHON) ΠΠ°Ρ‡Π°Ρ‚ΡŒ сСйчас

1.Π£Ρ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ списку Python

Π’ сСгодняшнСм руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎ спискС Python. ΠœΡ‹ обсудим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, Ρ€Π°Π·Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ список Π² Python. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Наряду с этим ΠΌΡ‹ обсудим ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со списком Python ΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ.

Π˜Ρ‚Π°ΠΊ, приступим ΠΊ руководству ΠΏΠΎ списку Python.

Бписок Python с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ - ПолноС руководство ΠΏΠΎ списку Python

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

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ C ++ ΠΈΠ»ΠΈ Java, язык программирования Python Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ массивов.Π—Π°Ρ‚Π΅ΠΌ для хранСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ½ прСдоставляСт класс «список». Бписок Python ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

3. Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список Python?

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

 >>> colors = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий'] 

Бписок Python ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

 >>> days = ['понСдСльник', 'Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊ', 'срСда', 4,5,6,7.0] 

Π’ спискС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ список Python.

 >>> languages ​​= [['английский'], ['Π³ΡƒΠ΄ΠΆΠ°Ρ€Π°Ρ‚ΠΈ'], ['Ρ…ΠΈΠ½Π΄ΠΈ'], 'румынский', 'испанский']
>>> языков 

[[«английский»], [Β«Π³ΡƒΠ΄ΠΆΠ°Ρ€Π°Ρ‚ΠΈΒ»], [Β«Ρ…ΠΈΠ½Π΄ΠΈΒ»], «румынский», «испанский»]

 >>> Ρ‚ΠΈΠΏ (языки [0]) 

<список "класса">

Бписок ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ ΠΈΠ»ΠΈ ΠΎΠΊΠΎΠ»ΠΎ Ρ‚ΠΎΠ³ΠΎ.

 >>> languages ​​= [('английский', 'албанский'), 'Π³ΡƒΠ΄ΠΆΠ°Ρ€Π°Ρ‚ΠΈ', 'Ρ…ΠΈΠ½Π΄ΠΈ', 'румынский', 'испанский']
>>> языки [0] 

(«английский», «румынский»)

 >>> Ρ‚ΠΈΠΏ (языки [0]) 

 >>> languages ​​[0] [0] = 'албанский' 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

языков [0] [0] = ’албанский’

TypeError: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ "ΠΊΠΎΡ€Ρ‚Π΅ΠΆ" Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ присвоСниС элСмСнта

4.Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ списку Python?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ списку Python Π² Ρ†Π΅Π»ΠΎΠΌ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ имя.

 >>> Π΄Π½Π΅ΠΉ 

[«понСдСльник», Β«Π²Ρ‚ΠΎΡ€Π½ΠΈΠΊΒ», «срСда», 4, 5, 6, 7,0]

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ это Π² распСчатку.

 >>> languages ​​= [['английский'], ['Π³ΡƒΠ΄ΠΆΠ°Ρ€Π°Ρ‚ΠΈ'], ['Ρ…ΠΈΠ½Π΄ΠΈ'], 'румынский', 'испанский']
>>> print (языки) 

[[«английский»], [Β«Π³ΡƒΠ΄ΠΆΠ°Ρ€Π°Ρ‚ΠΈΒ»], [Β«Ρ…ΠΈΠ½Π΄ΠΈΒ»], «румынский», «испанский»]

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

 >>> языки [0] 

[«английский»]

ИндСкс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

 >>> языки [1.0] 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

языков [1.0]

TypeError: индСксы списка Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами ΠΈΠ»ΠΈ срСзами, Π° Π½Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой

5. НарСзка списка Python

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ списка Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π°Ρ€Π΅Π·ΠΊΠΈ [].

 >>> index = ['ноль', 'ΠΎΠ΄ΠΈΠ½', 'Π΄Π²Π°', 'Ρ‚Ρ€ΠΈ', 'Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅', 'ΠΏΡΡ‚ΡŒ']
>>> индСксы [2: 4] 

["Π΄Π²Π°", "Ρ‚Ρ€ΠΈ"]

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты ΠΎΡ‚ индСкса 2 Π΄ΠΎ индСкса 4-1 (Ρ‚.Π΅. 3)

 >>> индСксы [: 4] 

[«ноль», Β«ΠΎΠ΄ΠΈΠ½Β», Β«Π΄Π²Π°Β», Β«Ρ‚Ρ€ΠΈΒ»]

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты ΠΈΠ· Π½Π°Ρ‡Π°Π»Π° списка Π² индСкс 3.

 >>> индСксы [4:] 

["Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅", "ΠΏΡΡ‚ΡŒ"]

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты ΠΎΡ‚ индСкса 4 Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° списка Π² Python.

 >>> индСксы [:] 

[«ноль», Β«ΠΎΠ΄ΠΈΠ½Β», Β«Π΄Π²Π°Β», Β«Ρ‚Ρ€ΠΈΒ», Β«Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Β», Β«ΠΏΡΡ‚ΡŒΒ»]

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ вСсь список.

  • ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы - Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π½Π°ΠΌΠΈ индСксы Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΊΠΎΠ½Ρ†Π° списка.
 >>> индСксы [: - 2] 

[«ноль», Β«ΠΎΠ΄ΠΈΠ½Β», Β«Π΄Π²Π°Β», Β«Ρ‚Ρ€ΠΈΒ»]

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт ΠΈΠ· Π½Π°Ρ‡Π°Π»Π° списка Π² Π΄Π²Π° элСмСнта ΠΈΠ· ΠΊΠΎΠ½Ρ†Π°.

 >>> индСксы [1: -2] 

[Β«ΠΎΠ΄ΠΈΠ½Β», Β«Π΄Π²Π°Β», Β«Ρ‚Ρ€ΠΈΒ»]

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты ΠΈΠ· элСмСнта с индСксом 1 Π΄ΠΎ Π΄Π²ΡƒΡ… элСмСнтов с ΠΊΠΎΠ½Ρ†Π°.

 >>> индСксы [-2: -1] 

["Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅"]

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнты ΠΎΡ‚ Π΄Π²ΡƒΡ… с ΠΊΠΎΠ½Ρ†Π° Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ с ΠΊΠΎΠ½Ρ†Π°.

 >>> индСксы [-1: -2] 

[]
Π­Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пустой список Python, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ остановкС для ΠΎΠ±Ρ…ΠΎΠ΄Π°.

6. ΠŸΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка Python (измСняСмый)

Бписки Python измСняСмы. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ элСмСнты ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ список.

 >>> colors = ['красный', 'Π·Π΅Π»Π΅Π½Ρ‹ΠΉ', 'синий'] 

Π°.ΠŸΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСго списка Python

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ список Python, Π½Π°Π·Π½Π°Ρ‡ΠΈΠ² Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ список.

 >>> colors = ['ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒ', 'Π·ΠΎΠ»ΠΎΡ‚ΠΎ', 'сСрСбро', 'встрСчаСтся']
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΒ», «сСрСбро», Β«ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΒ»]

Π±. ΠŸΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ списка Π² Python.

 >>> Ρ†Π²Π΅Ρ‚Π° [2:] = ['Π±Ρ€ΠΎΠ½Π·Π°', 'сСрСбро']
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΒ», Β«Π±Ρ€ΠΎΠ½Π·Π°Β», «сСрСбро»]

Если Π±Ρ‹ ΠΌΡ‹ вмСсто этого Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° значСния ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ слСва, посмотритС, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

 >>> colors = ['ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒ', 'Π·ΠΎΠ»ΠΎΡ‚ΠΎ', 'сСрСбро', 'встрСчаСтся']
>>> colors [2: 3] = ['Π±Ρ€ΠΎΠ½Π·Π°', 'сСрСбро']
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΒ», Β«Π±Ρ€ΠΎΠ½Π·Π°Β», «сСрСбро», Β«ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΒ»]

Ρ†Π²Π΅Ρ‚ΠΎΠ² [2: 3] ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ элСмСнт с индСксом 2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ элСмСнтом.

2: 2 Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

 >>> colors [2: 2] = ['ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ']
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΒ», Β«ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒΒ», Β«Π±Ρ€ΠΎΠ½Π·Π°Β», «сСрСбро»]

Π³. ΠŸΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта

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

 >>> colors = ['ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒ', 'Π·ΠΎΠ»ΠΎΡ‚ΠΎ', 'сСрСбро', 'встрСчаСтся']
>>> colors [3] = 'Π±Ρ€ΠΎΠ½Π·Π°'
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΒ», «сСрСбро», Β«Π±Ρ€ΠΎΠ½Π·Π°Β»]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² список Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ «голографичСский» элСмСнт, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом.

 >>> colors [4] = 'голографичСский' 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

Ρ†Π²Π΅Ρ‚ΠΎΠ² [4] = ’голографичСский’

IndexError: индСкс назначСния списка Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°

Π—Π½Π°Ρ‡ΠΈΡ‚, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ вСсь список Ρ‚Π°ΠΊ ΠΆΠ΅.

 >>> colors = ['ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒ', 'Π·ΠΎΠ»ΠΎΡ‚ΠΎ', 'сСрСбро', 'Π±Ρ€ΠΎΠ½Π·Π°', 'голографичСский']
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΒ», «сСрСбро», Β«Π±Ρ€ΠΎΠ½Π·Π°Β», «голографичСский»]

7. Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ список Python?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ список Python, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π΅Π³ΠΎ элСмСнтов ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт.

а. УдалСниС всСго списка Python

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово del для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅.

 >>> дСль Ρ†Π²Π΅Ρ‚ΠΎΠ²
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

Ρ†Π²Π΅Ρ‚ΠΎΠ²

NameError: имя Β«colorsΒ» Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ

Π±.Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ срСза Π² Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ срСз.

 >>> colors = ['ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒ', 'Π·ΠΎΠ»ΠΎΡ‚ΠΎ', 'сСрСбро', 'Π±Ρ€ΠΎΠ½Π·Π°', 'голографичСский']
>>> дСль Ρ†Π²Π΅Ρ‚ΠΎΠ² [2: 4]
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«Π·ΠΎΠ»ΠΎΡ‚ΠΎΒ», «голографичСский»]

 >>> Ρ†Π²Π΅Ρ‚Π° [2] 

«голографичСский»

Π’Π΅ΠΏΠ΅Ρ€ΡŒ "голографичСский" находится Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 2.

Π³. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ элСмСнта

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΈΠ· списка Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ индСкс.

 >>> дСль Ρ†Π²Π΅Ρ‚ΠΎΠ² [0]
>>> Ρ†Π²Π΅Ρ‚ΠΎΠ² 

["Π·ΠΎΠ»ΠΎΡ‚ΠΎ", "голографичСскоС"]

8. ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ списки Π² Python

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ список Π² список. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список.

 >>> grocery_list = [['ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒ', 'P&B', 'Π–Π΅Π»Π΅'], ['Π»ΡƒΠΊ', 'ΠΊΠ°Ρ€Ρ‚ΠΎΡ„Π΅Π»ΡŒ'], ['ΠΌΡƒΠΊΠ°', 'масло']]
>>> grocery_list 

[[Β«ΠΊΠ°Ρ€Π°ΠΌΠ΅Π»ΡŒΒ», Β«P&BΒ», Β«ΠΆΠ΅Π»Π΅Β»], [Β«Π»ΡƒΠΊΒ», Β«ΠΊΠ°Ρ€Ρ‚ΠΎΡ„Π΅Π»ΡŒΒ»], [Β«ΠΌΡƒΠΊΠ°Β», «масло»]]

Π­Ρ‚ΠΎ список Python ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΎΠ² со списками Π² Π½Π΅ΠΌ, Π³Π΄Π΅ списки ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΉΡ‚ΠΈ Π³Π»ΡƒΠ±ΠΆΠ΅.

 >>> a = [[[1,2], [3,4], 5], [6,7]]
>>> Π° 

[[[1, 2], [3, 4], 5], [6, 7]]

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнту 4 здСсь, ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ.

 >>> a [0] [1] [1] 

4

9. ОбъСдинСниС списка Python

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ со списками. Π­Ρ‚ΠΎ позволяСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° списка с сохранСниСм ΠΈΡ… порядка.

 >>> a, b = [3,1,2], [5,4,6]
>>> Π° + Π± 

[3, 1, 2, 5, 4, 6]

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

Π°. Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎ арифмСтичСская опСрация. ΠŸΡ€ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ списка Python Π½Π° Ρ†Π΅Π»ΠΎΠ΅ число нСсколько Ρ€Π°Π· ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΏΠΈΠΈ Π΅Π³ΠΎ элСмСнтов с сохранСниСм порядка.

 >>> Π° * = 3
>>> Π° 

[3, 1, 2, 3, 1, 2, 3, 1, 2]

Однако Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

 >>> Π° * 3,0 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

Π° * 3.0

TypeError: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° Π½Π΅-int Ρ‚ΠΈΠΏΠ° "float"

Π±. ЧлСнство

Π’ спискС Python ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Β«inΒ» ΠΈ Β«not inΒ».

 >>> 1 ΠΈΠ· 

ΠŸΡ€Π°Π²Π΄Π°

 >>> 2 Π½Π΅ Π² 

Π›ΠΎΠΆΡŒ

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

Бписок

Python ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for Π² Python.

 >>> для i в [1,2,3]:
         Ссли я% 2 == 0:
                print (f "{i} составноС \ n") 

2 составной

12.ПониманиС списка Python

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ список Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Для этого Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for, всС Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Боставим список всСх Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл ΠΎΡ‚ 1 Π΄ΠΎ 20.

 >>> even = [2 * i для i в диапазонС (1,11)]
>>> Π΄Π°ΠΆΠ΅ 

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ элСмСнтов. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ содСрТал Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ элСмСнты ΠΎΡ‚ 1 Π΄ΠΎ 20, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ ΠΈ дСлятся Π½Π° 3, ΠΌΡ‹ напишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

 >>> even = [2 * i for i in range (1,11) if i% 3 == 0]
>>> Π΄Π°ΠΆΠ΅ 

[6, 12, 18]

13. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ встроСнного списка

Π’ Python Π΅ΡΡ‚ΡŒ нСсколько встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² списках Python.

Python List Tutorial - встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ списков

Π°. len ()

РассчитываСт Π΄Π»ΠΈΠ½Ρƒ списка.

 >>> len (Ρ‡Π΅Ρ‚Π½ΠΎΠ΅) 

3

б. макс ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт ΠΈΠ· списка с наибольшим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

 >>> макс (Ρ‡Π΅Ρ‚Π½ΠΎΠ΅) 

18

Если всС элСмСнты Π² вашСм спискС ΡΠ²Π»ΡΡŽΡ‚ΡΡ строками, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ сравнСниС.

 >>> max (['1', '2', '3']) 

β€˜3’

Но это Π½Π΅ удаСтся, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… числовыС, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ - строки Π² Python.

 >>> макс ([2, '1', '2']) 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

макс ([2, ’1 β€²,’ 2 β€²])

TypeError: Β«>Β» Π½Π΅ поддСрТиваСтся ΠΌΠ΅ΠΆΠ΄Ρƒ экзСмплярами Β«strΒ» ΠΈ Β«intΒ»

Π³.ΠΌΠΈΠ½ ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ элСмСнт ΠΈΠ· списка Python с наимСньшим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

 >>> ΠΌΠΈΠ½ (Ρ‡Π΅Ρ‚Π½ΠΎΠ΅) 

6

Π³. сумма ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сумму всСх элСмСнтов Π² спискС.

 >>> сумма (чСтная) 

36

Однако для этого список Python Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС числовыС значСния.

 >>> a = ['1', '2', '3']
>>> сумма (Π°) 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

сум (Π°)

TypeError: Π½Π΅ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² для +: Β«intΒ» ΠΈ Β«strΒ»

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΠΏΠ»Π°Π²ΠΊΠ°Ρ….

 >>> сумма ([1.1,2.2,3.3]) 

6,6

e. отсортировано ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ списка, Π½ΠΎ Π½Π΅ измСняСт ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ.

 >>> a = [3,1,2]
>>> отсортировано (Π°) 

[1, 2, 3]

 >>> Π° 

[3, 1, 2]

Если элСмСнты списка Python ΡΠ²Π»ΡΡŽΡ‚ΡΡ строками, ΠΎΠ½ сортируСт ΠΈΡ… Π² соотвСтствии с ΠΈΡ… значСниями ASCII.

 >>> sorted (['ΠΏΡ€ΠΈΠ²Π΅Ρ‚', 'Π°Π΄', 'ΠΏΡ€ΠΈΠ²Π΅Ρ‚']) 

[Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β», Β«Π°Π΄Β», Β«ΠΏΡ€ΠΈΠ²Π΅Ρ‚Β»]

Π—Π΄Π΅ΡΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ H ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ASCII 72, ΠΎΠ½ΠΎ появляСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.

Ρ„. список ()

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² список.

 >>> список ("abc") 

[β€˜a’, β€˜b’, β€˜c’]

Он Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅ число Π² список, Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

 >>> список (2) 

Traceback (послСдний звонок послСдний):

Π€Π°ΠΉΠ» «», строка 1, Π²

лист (2)

TypeError: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ int Π½Π΅ повторяСтся

г. любой ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ элСмСнт Π² спискС Python ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True.

 >>> любоС (['', '', '1']) 

ΠŸΡ€Π°Π²Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ False для пустой ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

 >>> любой ([]) 

Π›ΠΎΠΆΡŒ

г. всС ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True, Ссли всС элСмСнты Π² спискС ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True.

 >>> всС (['', '', '1']) 

Π›ΠΎΠΆΡŒ

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ True для пустой ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

 >>> всС ([]) 

ΠŸΡ€Π°Π²Π΄Π°

14. ВстроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ функция - это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ конструкции ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΌΠ΅Ρ‚ΠΎΠ΄ - это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с Π½Π΅ΠΉ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ конструкции, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ (.). Python ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для измСнСния списка Python.

Бписок Python - встроСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π°. Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ()

ДобавляСт элСмСнт Π² ΠΊΠΎΠ½Π΅Ρ† списка.

 >>> Π° 

[2, 1, 3]

 >>> a.append (4)
>>> Π° 

[2, 1, 3, 4]

Π³. Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ()

ВставляСт элСмСнт Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ.

 >>> Π°.вставка (3,5)
>>> Π° 

[2, 1, 3, 5, 4]

Π­Ρ‚ΠΎ вставило элСмСнт 5 Π² индСкс 3.

Π³. ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ()

УдаляСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ экзСмпляр элСмСнта ΠΈΠ· списка Python.

 >>> a = [2,1,3,5,2,4]
>>> a.remove (2)
>>> Π° 

[1, 3, 5, 2, 4]

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π²Π΅ Π΄Π²ΠΎΠΉΠΊΠΈ, Π½ΠΎ ΠΎΠ½Π° ΡƒΠ΄Π°Π»ΠΈΠ»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΡƒΡŽ.

Π³. ΠΏΠΎΠΏ ()

УдаляСт элСмСнт ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ индСксу ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π½Π° экран.

 >>> a.pop (3) 

2

 >>> Π° 

[1, 3, 5, 4]

e. ясно ()

ΠžΡ‡ΠΈΡ‰Π°Π΅Ρ‚ список Python.

 >>> a.clear ()
>>> Π° 

[]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False.

 >>> Π±ΡƒΠ»Π΅Π² (a) 

Π›ΠΎΠΆΡŒ

Ρ„. index ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ индСкс ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

 >>> a = [1,3,5,3,4]
>>> Π°.ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ (3)
 

1

Π³. count ()

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

 >>> a.count (3) 

2

Ρ‡. sort ()

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° списка Π² порядкС возрастания.

 >>> a.sort ()
>>> Π° 

[1, 3, 3, 4, 5]

я. ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ()

Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ порядок элСмСнтов Π² списках Python.

 >>> a.reverse ()
>>> Π° 

[5, 4, 3, 3, 1]

Π­Ρ‚ΠΎ всС ΠΎ списках Python

15.Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Ого, это Π±Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΏΡ€Π°Π²ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π½Π΅ Π·Π°Π±Ρ‹Π»ΠΈ ΠΎΠ± этом. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅, посвящСнном спискам Python, ΠΌΡ‹ сначала рассмотрСли, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ список ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΎ списки Π½Π°Ρ€Π΅Π·ΠΊΠΈ Π² python. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ»ΠΈ вСсь список. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… списках ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ списки Python, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с Π½ΠΈΠΌΠΈ. НаконСц, ΠΌΡ‹ рассмотрСли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² списках.НадСюсь, Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ, увидимся снова. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π²

Для Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ ΠΎ Python см. 10 Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Python.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ - настоящий Python