πŸ”‘ Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹? πŸ”‘

Π’ Python, массив (array) прСдставляСт собой структуру Π΄Π°Π½Π½Ρ‹Ρ…, которая Ρ…Ρ€Π°Π½ΠΈΡ‚ элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния коллСкциями элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΈ использования массива Π² Python:


# Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ array
import array

# Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл
arr = array.array('i', [1, 2, 3, 4, 5])

# ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ элСмСнты массива
print(arr[0])  # Π’Ρ‹Π²ΠΎΠ΄: 1
print(arr[2])  # Π’Ρ‹Π²ΠΎΠ΄: 3

# Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта
arr[1] = 10

# ВывСсти всС элСмСнты массива
for num in arr:
    print(num)
# Π’Ρ‹Π²ΠΎΠ΄: 1 10 3 4 5

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Python ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ элСмСнты Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, символы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

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

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ array Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

Array Π² Python прСдставляСт собой структуру Π΄Π°Π½Π½Ρ‹Ρ…, которая позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Он прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этими элСмСнтами ΠΈ обСспСчиваСт эффСктивноС использованиС памяти.

БозданиС массива

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ array. Для этого сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ:


import array
    

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ массива, ΡƒΠΊΠ°Π·Π°Π² Ρ‚ΠΈΠΏ элСмСнтов ΠΈ ΠΈΡ… значСния. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания массива Ρ†Π΅Π»Ρ‹Ρ… чисСл:


numbers = array.array('i', [1, 2, 3, 4, 5])
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали массив с Ρ‚ΠΈΠΏΠΎΠΌ 'i', Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ†Π΅Π»Ρ‹Π΅ числа (integer), ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ значСниями [1, 2, 3, 4, 5]. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ массивы с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ числа, числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈΠ»ΠΈ символы.

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

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ элСмСнтам массива, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ индСксы. Π˜Π½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡ Π² массивС начинаСтся с нуля. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ доступа ΠΊ элСмСнтам массива:


print(numbers[0])  # Π’Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта
print(numbers[2])  # Π’Ρ‹Π²ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ элСмСнта
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнты массива. ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄:

1
3
    

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

Array Π² Python позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ значСния элСмСнтов ΠΏΠΎ ΠΈΡ… индСксу. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ измСнСния элСмСнта массива:


numbers[1] = 10  # ИзмСнСниС значСния Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта Π½Π° 10
print(numbers)  # Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ массива
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ измСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта Π½Π° 10. ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄:

array('i', [1, 10, 3, 4, 5])
    

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ массива

Array Π² Python прСдоставляСт Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами. Π’ΠΎΡ‚ нСсколько Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

  • .append(x): ДобавляСт элСмСнт x Π² ΠΊΠΎΠ½Π΅Ρ† массива.
  • .insert(i, x): ВставляСт элСмСнт x Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ i Π² массивС.
  • .remove(x): УдаляСт ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ элСмСнта x ΠΈΠ· массива.
  • .pop(): УдаляСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ послСдний элСмСнт массива.
  • .index(x): Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ индСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния элСмСнта x Π² массивС.
  • .count(x): Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ элСмСнта x Π² массивС.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:


numbers.append(6)  # Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² ΠΊΠΎΠ½Π΅Ρ† массива
numbers.insert(0, 0)  # Вставка элСмСнта Π² Π½Π°Ρ‡Π°Π»ΠΎ массива
numbers.remove(3)  # Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния элСмСнта 3
print(numbers)  # Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ массива
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ добавляСм элСмСнт 6 Π² ΠΊΠΎΠ½Π΅Ρ† массива, вставляСм элСмСнт 0 Π² Π½Π°Ρ‡Π°Π»ΠΎ массива ΠΈ удаляСм ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ элСмСнта 3. ΠžΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄:

array('i', [0, 1, 10, 4, 5, 6])
    

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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² Python ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ нСсколькими прСимущСствами ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со списками. Они Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ мСньшС памяти ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ быстрый доступ ΠΊ элСмСнтам. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Π°ΠΌ Π²Π°ΠΆΠ½Ρ‹ быстродСйствиС ΠΈ эффСктивноС использованиС памяти, array ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ.

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

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

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

#1 | Python NumPy | Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ array, arange ΠΈ dot

Π£Ρ€ΠΎΠΊΠΈ Python - Бписки (ΠœΠ°ΡΡΠΈΠ²Ρ‹)

#2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ массивов Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ array() | NumPy ΡƒΡ€ΠΎΠΊΠΈ

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”₯ Как быстро Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² Python: Π»Π΅Π³ΠΊΠΈΠ΅ способы ΠΈ совСты

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ sqrt Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅? πŸ€” Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sqrt Π² языкС программирования ΠŸΠΈΡ‚ΠΎΠ½

🐍 Бколько вСсит ΠΏΠΈΡ‚ΠΎΠ½ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΉ? РаскрываСм сСкрСты вСса этого ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ змСя πŸ€”

πŸ”‘ Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹? πŸ”‘

πŸ” Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, являСтся Π»ΠΈ Π±ΡƒΠΊΠ²Π° Π² Python Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ?

πŸ”Ž Как ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π² Python: Π»Π΅Π³ΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³ΠΈΠ΄

Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ чисСл Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ простой способ