πŸ”’ Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ измСнялся

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ измСнялся?

Для создания ΠΊΠΎΠΏΠΈΠΈ списка, которая Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy Π² Python. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    
        import copy
        
        original_list = [1, 2, 3, 4, 5]
        
        # Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ копию списка
        copied_list = copy.deepcopy(original_list)
    
    

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ списка, Π΄Ρ€ΡƒΠ³ΠΎΠΉ список Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ:

    
        original_list[0] = 10
        
        print("Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ список:", original_list)
        print("Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список:", copied_list)
    
    

Π’Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

    
        Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ список: [10, 2, 3, 4, 5]
        Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список: [1, 2, 3, 4, 5]
    
    

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию списка Π² Python, которая Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ списка.

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

Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ измСнялся?

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

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

Один ΠΈΠ· самых простых способов ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ - это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ индСксов ([:]) послС ΠΈΠΌΠ΅Π½ΠΈ списка. НапримСр:


        original_list = [1, 2, 3, 4, 5]
        new_list = original_list[:]
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π½ΠΎΠ²Ρ‹ΠΉ список new_list, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ исходного списка original_list. ИзмСнСниС new_list Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° original_list ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

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

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ - это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ copy(). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ создаСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ копию исходного списка. НапримСр:


        original_list = [1, 2, 3, 4, 5]
        new_list = original_list.copy()
    

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ copy(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ список new_list, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΊΠΎΠΏΠΈΠ΅ΠΉ original_list. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ создаСт Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ копию списка.

3. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм модуля copy

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ копию списка, Ρ‚ΠΎ для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy. ΠœΠ΅Ρ‚ΠΎΠ΄ deepcopy() ΠΈΠ· этого модуля создаСт ΠΏΠΎΠ»Π½ΡƒΡŽ копию списка ΠΈ всСх Π΅Π³ΠΎ элСмСнтов. НапримСр:


        import copy
        
        original_list = [1, 2, [3, 4], 5]
        new_list = copy.deepcopy(original_list)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy ΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ deepcopy(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ копию списка original_list. Π”Π°ΠΆΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки Π±ΡƒΠ΄ΡƒΡ‚ скопированы ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ зависимости ΠΎΡ‚ исходного списка.

4. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° "+"

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ способом копирования списка Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ являСтся использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° "+"


        original_list = [1, 2, 3, 4, 5]
        new_list = original_list + []
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали Π½ΠΎΠ²Ρ‹ΠΉ список new_list, Π΄ΠΎΠ±Π°Π²ΠΈΠ² пустой список [] ΠΊ original_list с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° "+". Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ создали Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ копию списка.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… способов копирования списка Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹ΠΉ список оставался нСзависимым ΠΎΡ‚ исходного. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСз, ΠΌΠ΅Ρ‚ΠΎΠ΄ copy(), ΠΌΠΎΠ΄ΡƒΠ»ΡŒ copy ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "+". Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ подходящий способ Π² зависимости ΠΎΡ‚ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΈ Π²Ρ‹ смоТСтС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с копиями списков.

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

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

Python. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ print() input()

46 Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ списков Python | List comprehension

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

πŸ“ Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ тСкст Π² Excel Ρ‡Π΅Ρ€Π΅Π· Python xlrd? 🐍

πŸ”§ Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Python Π½Π° Mac OS: пошаговая инструкция

πŸ”§ Как ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ UI Ρ„Π°ΠΉΠ» Π² Python: простыС шаги ΠΈ инструкции

πŸ”’ Как ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ список Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π½Π΅ измСнялся

πŸ” Как Π»Π΅Π³ΠΊΠΎ вывСсти числа Π² строчку Π² ΠŸΠΈΡ‚ΠΎΠ½? 🐍

πŸ”₯ Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС вСрсии Python Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ? Π£Π·Π½Π°ΠΉΡ‚Π΅ прямо сСйчас! πŸš€

πŸ” Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ Π² Python: простыС способы ΠΈ инструкция πŸ”