Course
Copy Arrays
Python Tutorial
This Python tutorial has been written for the beginners to help them understand the basic to advanced concepts of Python Programming Language. After completing this tutorial, you will find yourself at a great level of expertise in Python, from where you can take yourself to the next levels to become a world class Software Engineer.
Copy Arrays
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 arrayobj = 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 copyimport array as arra = arr.array('i', [1, 2, 3, 4, 5])b=aprint (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]=10print (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, copya = arr.array('i', [1, 2, 3, 4, 5])import copyb = 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]=10print (a,b)
It will produce the following output
array('i', [1, 2, 10, 4, 5]) array('i', [1, 2, 3, 4, 5])
Practice with Online Editor
Note: This Python online Editor is a Python interpreter written in Rust, RustPython may not fully support all Python standard libraries and third-party libraries yet.
Remember to save code(Ctrl
+S
Or
Command
+S
) before run it.