πŸ” Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² Python: простоС руководство

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз:

arr1 = [1, 2, 3]
arr2 = arr1[:] # ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ arr1 Π² arr2

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ copy() ΠΈΠ· модуля copy:

import copy

arr1 = [1, 2, 3]
arr2 = copy.copy(arr1) # ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ arr1 Π² arr2

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ копию, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ deepcopy():

import copy

arr1 = [[1, 2], [3, 4]]
arr2 = copy.deepcopy(arr1) # глубокая копия arr1 Π² arr2

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

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² Python?

Для копирования ΠΎΠ΄Π½ΠΎΠ³ΠΎ массива Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² Python Π΅ΡΡ‚ΡŒ нСсколько способов. Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

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

Один ΠΈΠ· самых простых ΠΈ эффСктивных способов ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив - это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСзы (slicing).


    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ исходного массива
    array1 = [1, 2, 3, 4, 5]
    
    # Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива с использованиСм срСзов
    array2 = array1[:]
    
    # Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
    print(array2)  # [1, 2, 3, 4, 5]
    

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π½ΠΎΠ²Ρ‹ΠΉ массив array2, присвоив Π΅ΠΌΡƒ срСз array1[:]. Π‘Ρ€Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию исходного массива.

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

Π’ Python для списков (массивов) Ρ‚Π°ΠΊΠΆΠ΅ доступСн ΠΌΠ΅Ρ‚ΠΎΠ΄ copy(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию массива.


    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ исходного массива
    array1 = [1, 2, 3, 4, 5]
    
    # Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° copy()
    array2 = array1.copy()
    
    # Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
    print(array2)  # [1, 2, 3, 4, 5]
    

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ copy() для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ массива array2, явно ΡƒΠΊΠ°Π·Π°Π² исходный массив Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

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

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² Python - это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list().


    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ исходного массива
    array1 = [1, 2, 3, 4, 5]
    
    # Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ list()
    array2 = list(array1)
    
    # Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
    print(array2)  # [1, 2, 3, 4, 5]
    

ΠœΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ исходный массив Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ массив array2 с Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΠ΅ΠΉ.

4. НСглубокоС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм модуля copy

Π’ случаС, Ссли исходный массив содСрТит Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы ΠΈΠ»ΠΈ словари), простоС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚Π½ΡƒΡŽ копию, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ измСнСния Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… структурах Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ Π² ΠΊΠΎΠΏΠΈΠΈ. Для создания Π½Π΅Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ массива, Π³Π΄Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ структуры Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ скопированы, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy.


    import copy
    
    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ исходного массива с Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ структурой Π΄Π°Π½Π½Ρ‹Ρ…
    array1 = [1, 2, [3, 4, 5]]
    
    # НСглубокоС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива
    array2 = copy.copy(array1)
    
    # Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
    print(array2)  # [1, 2, [3, 4, 5]]
    

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

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

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий способ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ срСзы (slicing), ΠΌΠ΅Ρ‚ΠΎΠ΄ copy(), Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ list() ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, трСбуСтся Π»ΠΈ Π²Π°ΠΌ глубокая ΠΈΠ»ΠΈ нСглубокая копия массива. УспСхов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ!

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

пСрСнос Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ массив Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ #ΠΏΠ°ΠΉΡ‚ΠΎΠ½ #ΠΊΠΎΠ΄ΠΈΠ½Π³ #ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ #shorts

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

#6. ОбъСдинСниС ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массивов | NumPy ΡƒΡ€ΠΎΠΊΠΈ

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

πŸ” Как Π½Π° Python Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ интСрфСйс: пошаговоС руководство

Какой Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт число Π² Python? πŸ“Š

πŸ”¨ Как Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ слово Π½Π° список Π² Python: простой Π³ΠΈΠ΄ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²

πŸ” Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ массив Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π² Python: простоС руководство

πŸ“ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ спам Π±ΠΎΡ‚Π° для Π’Πš Π½Π° Python: пошаговая инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… 🐍

πŸ”‘ Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ» while Π² Python: Π»ΡƒΡ‡ΡˆΠΈΠΉ способ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ”“

πŸ” Как вывСсти Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² python | ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ руководство