EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login
Home Software Development Software Development Tutorials Python Lists Tutorial Copy List in Python
Secondary Sidebar
Python Tutorial
  • File Handling Python Tutorial
    • Python File Methods
    • Python Copy File
    • Python Check if File Exists
    • Python Import CSV
    • File Handling in Python
    • Python Read CSV File
    • Python write CSV file
    • Python Delete File
    • Python File readline
    • Python if main
    • Python Main Method
    • List Method in Python
    • Python List Functions
    • Python List Comprehension
    • Python List Length
    • Python List count
    • Python Lists Methods
    • Python Add List
    • Python List extend
    • Python Doubly Linked List
    • Copy List in Python
    • Python list remove()
    • Python List Index
  • Basics Part I
    • What Is Python
    • Introduction to Python
    • Print Statement in Python
    • Careers in Python
    • Advantages of Python
    • Uses of Python
    • Python SQL Server
    • Python SQL Database
    • Python SQL Server Connection
    • Python SQL Injection
    • Python Features
    • Heap Data Structure Python
    • Python Fast And python psyco
    • Python ImportError
    • Python Recursion
    • Python Reduce
    • Local Variable in Python
    • Sparse Matrix in Python
    • Benefits and Limitations of Using Python
    • What can I do with?Python
    • Is Python a scripting language
    • clock() in Python
    • Is Python Object Oriented
    • Is Python Open Source
    • Python Socket Programming
    • Python Competitive Programming
    • Python HTTP Server
    • Useful Tips on Python Programming
    • Python You Should Be Using It
    • Python Web Development
    • Exclusive Things About Python Socket Programming (Basics)
    • Python Programming Beginners Tutorails
    • Practical Python Programming for Non-Engineers
    • Python Programming for the Absolute Beginner
    • Data Engineer with Python
    • Versions of? Python
  • Programming in Python
    • Comments in Python
    • sprintf Python
    • Finally in Python
    • Python Multiline Comment
    • Python Data Types
    • Python Variables
    • Python Variable Types
    • Python Global Variable
    • Python Variable Scope
    • Python Private Variables
    • Python Default Arguments
    • Python Defaultdict
    • Python Command-line Arguments
    • Python try except
    • Coroutines python
    • Indentation in Python
    • Object in Python
    • Weka Python
    • Counting Sort Python
    • Hash table in Python
    • Radix Sort in Python
    • Hierarchical Cluster Python
    • Dataset in Python
    • Flask in Python
    • Python Keywords
    • Python Literals
    • Pointers in Python
    • Iterators in Python
    • Python Declare Variable
    • Python Modules
    • Python Private Method
    • Python dateutil
    • Python float to int
    • Python not equal
    • Python libraries list
    • Random forest in python
    • Data Manipulation with Python
    • Text to Speech in Python
    • Python Throw Exception
    • Python strftime
    • Python Widgets
    • Mean Shift Clustering Python
    • Sublime Text Shortcuts
    • Python User Input
    • Python Enumerate
    • Python Commands
    • Type Casting in Python
    • Python UUID
    • Abstraction in Python
    • Python Identifiers
    • Python Constants
    • What is NumPy in Python?
    • Cheat Sheet Python
  • Frameworks
    • Python Frameworks
    • Python Compilers
    • Python Editors
    • Best Compiler for Python
    • Python IDE for Windows
    • Python IDE on Linux
    • Python pseudocode
    • Iterator in Python
  • Installation
    • How To Install Python
    • How to Install Python on Linux
    • Install Python on Linux
    • Install Python on Windows
    • Install Anaconda Python
  • Operator
    • Python Operators
    • Operator Precedence in Python
    • Arithmetic Operators in Python
    • Python Comparison Operators
    • Logical Operators in Python
    • Assignment Operators in Python
    • Unary Operators in Python
    • Python Ternary Operator
    • String Operators in Python
    • Python Int to String
    • Python String to Float
    • Python? string manipulation
    • Boolean Operators in Python
    • Identity Operators in Python
    • Python Bitwise Operator
    • Python Remainder Operator
    • Python object type
    • Python object serialization
    • Flask unit testing
    • Unit Testing in Python
    • Knapsack Problem Python
    • exec Python
    • Python Modulus Operator
  • Control Statement
    • Conditional Statements in Python
    • Control Statements in Python
    • If Condition in Python
    • If Else in Python
    • If Statement in Python
    • If Else Statement in Python
    • else if Statement in Python
    • Nested IF Statement in Python
    • Break Statement in Python
    • Python Switch Statement
    • Python Break Statement
  • Loops
    • Loops in Python
    • For Loop in Python
    • While Loop in Python
    • Do While Loop in Python
    • Python Nested Loops
    • Python Infinite Loop
    • Python?Event Loop
  • Sorting
    • Sorting in Python
    • Sorting Algorithms in Python
    • Bubble Sort in Python
    • Merge Sort in Python
    • Heap Sort in Python
    • Quick Sort in Python
    • Python Sorted Function
    • Sort string in Python
    • Insertion sort in Python
    • Shell sort in Python
    • Bucket Sort Python
    • Python Input String
    • Python String Operations
    • Python String Join
    • Python String Contains
    • Byte to String Python
    • Python Stream
    • Python List to String
    • Python String Replace
    • Python Compare Strings
    • Lowercase in Python
    • Python Split String
    • Python Multiline String
    • Python Find String
    • Python Trim String
    • Python Test Empty String
    • Python Slice String
    • Python Regex
    • Python Regex Tester
    • Python regex replace
  • Function
    • Python Built-in Functions
    • Recursive Function in Python
    • Python Range Function
    • Python Substring
    • Math Functions in Python
    • Python @property decorator
    • Python String Functions
    • Python User Defined Functions
    • Trigonometric Functions in Python
    • Python Input Function
    • Python Set Function
    • Python len Function
    • Python eval()
    • Python rstrip()
    • Pandas DataFrame.apply()
    • Python Counter
    • ord Function in Python
    • strip Function in Python
    • Split Function in Python
    • Python Round Function
    • Python Map Function
    • Python format() Function
    • Python Contextlib
    • Python Return Value
    • Filter in Python
    • Python Absolute Value
    • Python Type Function
    • Python xrange
    • Python yield
    • Max Function in Python
    • Python Power Function
    • pop() in Python
    • Python argparse
    • Python Pickle
    • Python Zip Function
    • Python Z Test
    • super() in Python
    • Python Extend
    • Python @staticmethod
    • Python Timezone
    • Timestamp to Date in Python
    • Python Timeit
    • Timsort Python
    • Python Property()
    • Python deepcopy
    • Python Dump
    • Python wait()
    • Statistical Analysis in Python
    • Python PEP8
    • Python Filter Function
    • Python if then else
    • Lambda in Python
    • Python BeautifulSoup
    • BeautifulSoup XPath
    • Beautifulsoup lxml
    • BeautifulSoup Install
    • Python Sleep
    • Python Function Generator
    • Python @classmethod decorator
    • Python Endswith
    • Python BufferedReader
    • Python Async
    • Python Parser
    • Python SystemExit
    • Python pip
    • Python kwargs
  • Array
    • Arrays in Python
    • Python string to array
    • 2D Arrays In Python
    • 3d Arrays in Python
    • Multidimensional Array in Python
    • Python Array Functions
    • String Array in Python
    • Python Sort Array
    • Python Array Length
  • OOPS Concept
    • Inheritance in? Python
    • Single Inheritance in Python
    • Overriding in Python
    • Function Overloading in Python
    • Method Overriding in Python
    • Encapsulation in Python
    • Polymorphism in Python
    • Static Method in Python
    • Method Overloading in Python
    • Operator Overloading in Python
    • Constructor in Python
    • Destructor in Python
    • Python Overloading
    • Multiple Inheritance in Python
    • Multilevel Inheritance in Python
    • Interface in Python
  • Programs
    • Patterns in Python
    • Star Patterns in Python
    • Swapping in Python
    • Factorial in Python
    • Fibonacci Series in Python
    • Reverse Number in Python
    • Binary number in Python
    • Palindrome in Python
    • Random Number Generator in Python
    • Prime Numbers in Python
    • Armstrong Number in Python
    • Perfect Number in Python
    • Strong Number in Python
    • Leap Year Program in Python
    • Anagram Program in Python
    • Square Root in Python
    • Python Reverse String
    • Python Object to String
    • Python string append
    • Python Raw String
    • Python Object to JSON
    • Python Classmethod vs Staticmethod
  • Exception
    • Python Exception Handling
    • Custom Exception in Python
    • Indentation Error in Python
    • Python Memory Error
    • Python User Defined Exception
    • Python IOError
    • Python EOFError
    • Python NotImplementedError
    • Python TypeError
    • Python ValueError
    • Python AssertionError
    • Python Unicode Error
    • Python NameError
    • Python StopIteration
    • Python OverflowError
    • Python KeyboardInterrupt
  • PySpark
    • PySpark Read CSV
    • PySpark lit()
    • PySpark Pipeline
    • PySpark Join on Multiple Columns
    • PySpark GitHub
    • PySpark to Pandas
  • NLTK
    • What is NLTK
    • NLTK Stop Words
    • NLTK Tokenize
    • NLTK Remove Punctuation
    • NLTK Sentiment Analysis
    • NLTK POS Tag
    • NLTK Lemmatizer
    • NLTK Corpus
    • NLTK Stemming
    • NLTK word_tokenize
    • NLTK WordNet
  • SpaCy
    • SpaCy ner
    • spaCy Matcher
    • spaCy Text Classification
    • spaCy Dependency Parser
    • SpaCy Tokenizer
    • SpaCy NLP
    • SpaCy models
  • Advanced
    • Python Pillow
    • Merge Dictionaries in Python
    • Dictionary Python Remove
    • Python Data Analysis Example
    • Scope in Python
    • Python Itertools
    • Python Join List
    • Python Pillow Install
    • Python Projects in GitHub
    • Python Projects with Database
    • OrderedDict in Python
    • Python Collections
    • statsmodels Python
    • Python NOT Operator
    • classmethod in Python
    • Assert in Python
    • Python References
    • Python Virtualenv
    • Python mkdir
    • Logistic Regression in Python
    • Dictionary in Python
    • Sort Dictionary in Python
    • Nested Dictionary Python
    • List of Dictionary in Python
    • Python Directories
    • Regular Expression in Python
    • Python Import Module
    • Python OS Module
    • Python Sys Module
    • Python Generators
    • Abstract Class in Python
    • Python File Operations
    • Sequences in Python
    • Stack in Python
    • Queue in Python
    • Deque in Python
    • Tuples in Python
    • Python Magic Method
    • Python Sets
    • Python Set Methods
    • Priority Queues in Python
    • Python Create Directory
    • Reverse Engineering with Python
    • Underscore in Python
    • Serverless Python
    • String Formatting in Python
    • f String in Python
    • Python isinstance
    • String Length Python
    • Python Concurrency
    • Python List
    • Python Initialize List
    • Python Unique List
    • Python Sort List
    • Selection Sort in Python
    • Python Reverse List
    • Python Empty List
    • List Comprehensions Python
    • List Operations in Python
    • Python Repository
    • Python Database Connection
    • Python SQLite
    • Data Analysis with Python
    • Python Language
    • Object Oriented Programming in Python
    • Python is Open Source Language
    • Python SQL
    • Python SQL Library
    • Python SQLite Create Database
    • Send Mail in Python
    • Bash Scripting and Python
    • Violent Python Book
    • NLP in Python
    • Matplotlib In Python
    • Gray Hat Python: Security
    • Python Subprocess
    • Python bokeh
    • Python pillow resize image
    • Python xlrd
    • Python Projects
    • Python Threading Timer
    • Python Threadpool
    • Python Statistics Module
    • How to Call a Function in Python?
    • Python Curl
    • JSON in Python
    • Python JSON to string
    • Python json.dumps
    • Python Turtle
    • Python testing framework
    • Python Unit Test
    • pass Keyword in Python
    • Tokenization in Python
    • Random Module in Python
    • Python Multiprocessing
    • Python getattr
    • Collection Module in Python
    • Python Countdown Timer
    • Python Context Manager
    • Python Event Handler
    • Python Print Table
    • Python Docstring
    • Python Dictionary Keys
    • Python Iterator Dictionary
    • Python Class Attributes
    • Python Dictionary Methods
    • Namedtuple Python
    • OpenCV Python
    • OpenCV erode
    • OpenCV save image
    • Traceback in Python
    • Decorator in Python
    • Python Pygame
    • Python Class Constants
    • Python Validation
    • Python Switch Case
    • Linked List in Python
    • DFS Algorithm in Python
    • Priority queue algorithm
    • Tree Traversal Python
    • AVL Tree Python
    • Binary Search Tree Python
    • Binary tree in Python
    • Binary search in Python
    • BFS Algorithm Python
    • Python Rest Server
    • Python Yield vs Return
    • Python Pickle vs JSON
    • Python Read Excel File
  • BeautifulSoup
    • BeautifulSoup Find
    • BeautifulSoup find by class
    • BeautifulSoup Web Scraping
    • BeautifulSoup get text
    • BeautifulSoup Table
    • BeautifulSoup Requests
  • Interview Question
    • Python Interview Questions And Answers

Copy List in Python

By Priya PedamkarPriya Pedamkar

copy list in python

Introduction to Copy List in Python

In python, a Copy list is a function employed on the lists that hold multiple variables/ values. The copy function’s operation is basically that the elements of an already existing list can be copied to a newly created empty list. This copy function can be achieved by using the four types of logical patterns, like using the assignment operator for assigning the values from an existing list to a new list, a method specific to python referred to as shallow copy, Deep copy for copying in multiple occurrences, and copying using the constructor.

How to Copy List in Python?

Copying a list can be done in four ways:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

1. Assignment Operator

Code:

>>> a = [2,5,4,3,6,1]
>>> print(a)
[2, 5, 4, 3, 6, 1]
>>> b = a
>>> print(b)
[2, 5, 4, 3, 6, 1]
>>> a[0] = 10
>>> print(a)
[10, 5, 4, 3, 6, 1]
>>> print(b)
[10, 5, 4, 3, 6, 1]

Output:

Copy List in Python - 1

Explanation to the above code: In the above example, we have created a list and assigned it to the variable ‘a’. Now we have assigned this same list to variable b. Now, if we print list b, we get the same values. Now we changed the first element of the list ‘a’. Print list ‘a’ to check the updated values. Now we if print the list ‘b’, we can see that the values of list ‘b’ are also changed. In this case, values are not copied, both the variable is just referring to the same object.

2. Copy Using Constructor

Now to avoid the above problem, we can use the list constructor to copy the list.

Code:

>>> a = [2,5,4,3,6,1]
>>> print(a)
[2, 5, 4, 3, 6, 1]
>>> b = list(a)
>>> print(b)
[2, 5, 4, 3, 6, 1]
>>> a[0] = 10
>>> print(a)
[10, 5, 4, 3, 6, 1]
>>> print(b)

Output:

Copy List in Python - 2

Explanation to the above code: In the above example, we have created a list ‘a’ and assigned it to list ‘b’ using the list constructor. If we change the value of the list ‘a’, the list ‘b’ values are not going to change; now, we can say the list is copied.

3. Shallow Copy

Shallow copy is a somewhat similar assignment operator. It also creates a new object that is storing the reference of the old list instead of copying the items. To make use of shallow copy, we have to import the copy module.

Code:

>>> import copy
>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> print(a)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> b = copy.copy(a)
>>> print(b)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a.append(['a','b','c'])
>>> print(a)
[[1, 2, 3], [4, 5, 6], [7, 8, 9], ['a', 'b', 'c']]
>>> print(b)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a[1][2] = 10
>>> print(a)
[[1, 2, 3], [4, 5, 10], [7, 8, 9], ['a', 'b', 'c']]
>>> print(b)
[[1, 2, 3], [4, 5, 10], [7, 8, 9]]

Output:

Shallow Copy

Explanation to the above code: In the above program, you can see that we have created a nested list ‘a’ and then we have assigned it to the list ‘b’ using copy. Copy function. When we print the list ‘b’, we can see that all the values of ‘a’, as it is pointing to all the elements of the list ‘a’.

Now we have appended the new list into the list ‘a’. Now we print the list ‘b’; we don’t find the new list that was appended. It’s because it’s still pointing to the old list reference. It won’t have any information about the newly added element done by after copy command. Now, if we try to change the list element that also exists in list b, you might see the change in list b as well because it has all the references of the old except that, was added later.

4. Deep Copy

In deep copy also, we have to import the copy module to make it work. A deep copy creates a new object and recursively keeps adding copies of the nested elements present in the old list to the new list.

Code:

>>> import copy
>>> a = [[1,2,3],[4,5,6],[7,8,9]]
>>> print(a)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> b = copy.deepcopy(a)
>>> print(b)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a.append(['a','b','c'])
>>> print(a)
[[1, 2, 3], [4, 5, 6], [7, 8, 9], ['a', 'b', 'c']]
>>> print(b)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a[1][2] = 10
>>> print(a)
[[1, 2, 3], [4, 5, 10], [7, 8, 9], ['a', 'b', 'c']]
>>> print(b)
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

Output:

Deep Copy

Explanation to the above code: In the above program, you can see that we have created a list ‘a’ and copied the list ‘a’ to the list ‘b’ using copy. deepcopy command. Now we print the list ‘b’; we can see that all the elements of the list are now copied. Now we can try to append a new list into the list ‘a’. If we print the list ‘b’, we can see that new elements exist. If we try to change the element that exists before copying, then also the element is not changed into the list ‘b’. So if we make any changes into the list ‘a’, no change will be reflected in the list ‘b’ because instead of referencing the object, values of the old list are copied recursively into the new list, and both the list have new object ids.

Conclusion

These list methods are very useful in python. Which method has to be used depends upon the requirement or the task we are performing. Suppose we have the list that should be used all over the system, then we can make use of shallow copy so that one change can reflect the entire system.

Recommended Articles

This is a guide to Copy List in Python. Here we discuss how to copy the list in python in four ways using respective examples.  You can also go through our other related articles to learn more –

  1. List Method in Python
  2. Iterators in Python
  3. Overriding in Python
  4. Stack in Python
Popular Course in this category
Python Certifications Training Program (40 Courses, 13+ Projects)
  40 Online Courses |  13 Hands-on Projects |  215+ Hours |  Verifiable Certificate of Completion
4.8
Price

View Course
Primary Sidebar
Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

ISO 10004:2018 & ISO 9001:2015 Certified

© 2023 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

By continuing above step, you agree to our Terms of Use and Privacy Policy.
*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more