πŸ”‘ ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство: Как ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Python Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ copy() ΠΈΠ»ΠΈ слайсы.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ способа:

import copy

# Π‘ использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° copy()
arr1 = [1, 2, 3, 4, 5]
arr2 = copy.copy(arr1)
print(arr2)  # [1, 2, 3, 4, 5]
# Б использованиСм слайсов
arr1 = [1, 2, 3, 4, 5]
arr2 = arr1[:]
print(arr2)  # [1, 2, 3, 4, 5]

Оба этих способа ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°. Однако, Ссли массив содСрТит измСняСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ списки ΠΈΠ»ΠΈ словари, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля copy.

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

Как ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² Python

ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массивов являСтся Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Python. Часто ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию массива, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ для дальнСйшСй манипуляции с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½Π΅ затрагивая исходный массив. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов копирования массивов Π² Python.

1. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° copy()

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

    
    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΌΠ΅Ρ‚ΠΎΠ΄Π° copy()
    import numpy as np

    arr1 = np.array([1, 2, 3, 4, 5])
    arr2 = arr1.copy()

    print("ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив:", arr1)
    print("Копия массива:", arr2)

    arr2[0] = 10

    print("ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив послС измСнСния ΠΊΠΎΠΏΠΈΠΈ:", arr1)
    print("Копия массива послС измСнСния:", arr2)
    
    

Π’Ρ‹Π²ΠΎΠ΄:

    
    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив: [1 2 3 4 5]
    Копия массива: [1 2 3 4 5]
    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив послС измСнСния ΠΊΠΎΠΏΠΈΠΈ: [1 2 3 4 5]
    Копия массива послС измСнСния: [10  2  3  4  5]
    
    

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ элСмСнта Π² ΠΊΠΎΠΏΠΈΠΈ массива Π½Π΅ повлияло Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив.

2. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array()

Π”Ρ€ΡƒΠ³ΠΈΠΌ способом копирования массивов являСтся использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array() ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NumPy. Π­Ρ‚Π° функция создаСт Π½ΠΎΠ²Ρ‹ΠΉ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ элСмСнты ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависимы ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ элСмСнты Π½ΠΎΠ²ΠΎΠ³ΠΎ массива Π±Π΅Π· влияния Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π».

    
    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ array() для копирования массива
    import numpy as np

    arr1 = np.array([1, 2, 3, 4, 5])
    arr2 = np.array(arr1)

    print("ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив:", arr1)
    print("Копия массива:", arr2)

    arr2[0] = 10

    print("ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив послС измСнСния ΠΊΠΎΠΏΠΈΠΈ:", arr1)
    print("Копия массива послС измСнСния:", arr2)
    
    

Π’Ρ‹Π²ΠΎΠ΄:

    
    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив: [1 2 3 4 5]
    Копия массива: [1 2 3 4 5]
    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив послС измСнСния ΠΊΠΎΠΏΠΈΠΈ: [1 2 3 4 5]
    Копия массива послС измСнСния: [10  2  3  4  5]
    
    

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ использовали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ array() для создания ΠΊΠΎΠΏΠΈΠΈ массива arr1. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ элСмСнта Π² ΠΊΠΎΠΏΠΈΠΈ arr2, ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив arr1 остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ.

3. Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ deepcopy()

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

    
    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ deepcopy()
    import numpy as np
    import copy

    arr1 = np.array([1, 2, 3, 4, 5])
    arr2 = copy.deepcopy(arr1)

    print("ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив:", arr1)
    print("Копия массива:", arr2)

    arr2[0] = 10

    print("ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив послС измСнСния ΠΊΠΎΠΏΠΈΠΈ:", arr1)
    print("Копия массива послС измСнСния:", arr2)
    
    

Π’Ρ‹Π²ΠΎΠ΄:

    
    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив: [1 2 3 4 5]
    Копия массива: [1 2 3 4 5]
    ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив послС измСнСния ΠΊΠΎΠΏΠΈΠΈ: [1 2 3 4 5]
    Копия массива послС измСнСния: [10  2  3  4  5]
    
    

Ѐункция deepcopy() создаСт ΠΏΠΎΠ»Π½ΡƒΡŽ копию массива arr1, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π΅Π³ΠΎ элСмСнты. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΠΊΠΎΠΏΠΈΠΈ arr2 Π½Π΅ влияСт Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ массив arr1.

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ‚Ρ€ΠΈ способа копирования массивов Π² Python. ΠœΠ΅Ρ‚ΠΎΠ΄ copy() позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ повСрхностныС ΠΊΠΎΠΏΠΈΠΈ массивов, Π³Π΄Π΅ Π½ΠΎΠ²Ρ‹ΠΉ массив ссылаСтся Π½Π° Ρ‚Π΅ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² памяти. Ѐункция array() создаСт Π½ΠΎΠ²Ρ‹ΠΉ массив, Π³Π΄Π΅ элСмСнты ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависимы ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π°. Ѐункция deepcopy() создаСт Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ копию массива, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π΅Π³ΠΎ элСмСнты.

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ способа копирования массива Π²Π°ΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π² Π½ΠΎΠ²ΡƒΡŽ копию ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Π² Python ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий способ для Π²Π°ΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡!

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

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

PYTHON массивы Π½Π° ПРОБВЫΠ₯ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ ΠΎΡ‚ Π‘ΠŸΠ˜Π‘ΠšΠžΠ’ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

#16. Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ списки | Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

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

⚑️Как Π·Π°Π΄Π°Ρ‚ΡŒ Π΄Π²Π° условия Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: Π»Π΅Π³Ρ‡Π΅ простого!

Как эффСктивно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ вСсь массив python πŸ”

πŸ” Как Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство ΠΈ совСты

πŸ”‘ ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство: Как ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массивы Python Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ

😊 Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ подстроку Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: простой ΠΈ понятный Π³Π°ΠΉΠ΄!

⌨️ Как задаСтся строка Π² Python: простоС объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸ” Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅? Учимся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ простыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…!