Copying Arrays in Python: Creating Duplicate Arrays

thumb_up 1  ·  sell Python array copying, Making copies of Python arrays, Duplicating arrays in Python

Python's built-in sequence types i.e. list, tuple and string are indexed collection of items. However, unlike arrays in C/C++, Java etc. , they are not homogenous, in the sense the elements in these types of collection may be of different types. Python's array module helps you to create object similar to Java like arrays. In this chapter, we discuss how to copy an array object to another.

Python arrays can be of string, integer or float type. The array class constructor is used as follows −

import array obj = array.array(typecode[, initializer])

The typecode may be a character constant representing the data type.

We can assign an array to another by the assignment operator.

a = arr.array('i', [1, 2, 3, 4, 5]) b=a.copy()

However, such assignment doesn't create a new array in the memory. In Python, a variable is just a label or reference to the object in the memory. So, a is the reference to an array, and so is b. Check the id() of both a and b. Same value of id confirms that simple assignment doesn't create a copy

 
import array as arr a = arr.array('i', [1, 2, 3, 4, 5]) b=a print (id(a), id(b))

It will produce the following output −

2771967068656 2771967068656

Because "a" and "b" refer to the same array object, any change in "a" will reflect in "b" too −

a[2]=10 print (a,b)

It will produce the following output −

array('i', [1, 2, 10, 4, 5]) array('i', [1, 2, 10, 4, 5])

To create another physical copy of an array, we use another module in Python library, named copy and use deepcopy() function in the module. A deep copy constructs a new compound object and then, recursively inserts copies into it of the objects found in the original.

import array, copy a = arr.array('i', [1, 2, 3, 4, 5]) import copy b = copy.deepcopy(a)

Now check the id() of both "a" and "b". You will find the ids are different.

print (id(a), id(b))

It will produce the following output −

2771967069936 2771967068976

This proves that a new object "b" is created which is an actual copy of "a". If we change an element in "a", it is not reflected in "b".

a[2]=10 print (a,b)

It will produce the following output −

array('i', [1, 2, 10, 4, 5]) array('i', [1, 2, 3, 4, 5])


The End! should you have any inquiries, we encourage you to reach out to the Vercaa Support Center without hesitation.

Was this answer helpful?

Related Articles

description

Exploring Python's Key Characteristic

Python is a feature rich high-level, interpreted, interactive and object-oriented scripting language. This tutorial will list down some of…

arrow_forward
description

Comparing Python and C++

Both Python and C++ are among the most popular programming languages. Both of them have their advantages and disadvantages. In this…

arrow_forward
description

Creating a Python Hello World Program

This tutorial will teach you how to write a simple Hello World program using Python Programming language. This program will make use of…

arrow_forward
description

Python's Versatile Application Domains

Python is a general-purpose programming language. It is suitable for development of wide range of software applications. Over last few…

arrow_forward
description

Understanding the Python Interpreter

Python is an interpreter-based language. In a Linux system, Python's executable is installed in /usr/bin/ directory. For Windows, the…

arrow_forward
arrow_back « Back