append() function">

Python Program to Copy a List

This article covers multiple programs in Python, to copy a list. In this article, we will learn about copying of a list in following four ways:

Copy a List in Python using = Operator

The question is, write a Python program to copy a list. The program given below is its answer:

a = [40, 50, 60]
print("The list \"a\" is:")
print(a)

b = a
print("\nThe list \"b\" is:")
print(b)

The output produced by above program, demonstrating how to copy a list in Python, is given below:

The list "a" is:
[40, 50, 60]

The list "b" is:
[40, 50, 60]

Copy a List entered by User in Python

This is basically the same program as of previous program. The only difference is, this program allows user to define the size of list, along with its elements or items:

print("How many element to store in the list: ", end="")
n = int(input())
print("Enter", n, "elements for the list: ", end="")
a = []
for i in range(n):
    a.append(input())

print("The list \"a\" is:")
print(a)

b = a
print("\nThe list \"b\" is:")
print(b)

The snapshot given below shows the sample run of above Python program, with user input 4 as number of elements to store in the list, codes, cracker, dot, com as four elements:

python copy a list

Points to be Noted

Important - If a list is copied to another, using = operator, and if you change any list, then both the list will get changed. For example:

a = [40, 50, 60]

b = a
print("The list \"b\" is:")
print(b)

a.append(70)
print("\nThe list \"b\" is:")
print(b)

b.append(80)
print("\nThe list \"a\" is:")
print(a)

This program produces following output:

The list "b" is:
[40, 50, 60]

The list "b" is:
[40, 50, 60, 70]

The list "a" is:
[40, 50, 60, 70, 80]

This happens because the new copied list is referencing to that old list through which the new list is copied.

Copy a List in Python without Changing Original

To copy a list in Python without changing the original list, use copy() function. Here is an example:

a = [76, 87, 90]
print("The list \"a\" is:")
print(a)

b = a.copy()
print("\nThe list \"b\" is:")
print(b)

a.append(70)
print("\nNow the list \"a\" is:")
print(a)
print("\nThe list \"b\" is:")
print(b)

b.append(80)
print("\nThe list \"a\" is:")
print(a)
print("\nNow the list \"b\" is:")
print(b)

The output would be:

The list "a" is:
[76, 87, 90]

The list "b" is:
[76, 87, 90]

Now the list "a" is:
[76, 87, 90, 70]

The list "b" is:
[76, 87, 90]

The list "a" is:
[76, 87, 90, 70]

Now the list "b" is:
[76, 87, 90, 80]

Copy a List in Python using List Slicing

Here is another program shows how to copy a list in Python. This program copies a list using slicing:

a = [76, 87, 90]

b = a[:]
print("The list \"b\" is:")
print(b)

The output produced by above Python code will exactly be:

The list "b" is:
[76, 87, 90]

After copying, whether you change the original or the copied list, other list does not get effected.

Copy a List in Python using Loop

This is the last program of this article, created to, of course demonstrates how to copy a list, but using loop (a for loop) this time:

a = [76, 87, 90]

b = []
for x in a:
    b.append(x)

print("The list \"b\" is:")
print(b)

Or:

a = [76, 87, 90]

b = []
for i in range(len(a)):
    b.append(a[i])

print("The list \"b\" is:")
print(b)

Both of the previous programs, does the same job. Here is the same output produced by both the programs given above:

The list "b" is:
[76, 87, 90]

Python Online Test


« Previous Program Next Program »