Difference between list and array in Python

Sammy 85 Published: 07/03/2024

Difference between list and array in Python

Here's the explanation of the difference between lists and arrays in Python:

In Python, both lists and arrays are data structures that can store multiple values. However, there is a fundamental difference between them.

Arrays

An array in Python is a mutable sequence type. It was introduced in Python 3.x as array.array(). An array has the following characteristics:

It's homogeneous, meaning all elements must be of the same data type (e.g., all integers or all floating-point numbers). It's fixed-size, meaning once created, its size cannot be changed. Elements are stored in contiguous memory locations.

Arrays are useful when you need to work with large amounts of numerical data and want more control over memory usage. They also provide a way to create arrays of bytes, integers, or floating-point numbers.

Here's an example:

import array

arr = array.array('i', [1, 2, 3, 4])

print(arr) # Output: array('i', [1, 2, 3, 4])

Lists

A list in Python is a mutable ordered sequence type. It's one of the most widely used data structures in Python. A list has the following characteristics:

It's heterogeneous, meaning elements can be of different data types (e.g., integers, strings, dictionaries). It's dynamic-size, meaning you can add or remove elements at any time. Elements are stored in a linked-list structure.

Lists are useful when you need to store and manipulate collections of diverse data types. They provide many methods for manipulating the list, such as inserting, removing, and sorting elements.

Here's an example:

my_list = [1, 2, 3, 'hello', {'name': 'John'}]

print(my_list) # Output: [1, 2, 3, 'hello', {'name': 'John'}]

Key differences

So, what are the main differences between lists and arrays in Python?

Homogeneity vs Heterogeneity: Arrays are homogeneous, meaning all elements must be of the same data type. Lists are heterogeneous, allowing elements to be of different types. Fixed-size vs Dynamic-size: Arrays have a fixed size, while lists are dynamic, allowing you to add or remove elements at any time. Memory Management: Arrays store elements in contiguous memory locations, while lists use a linked-list structure. Methods and Operations: Lists provide many methods for manipulating the list, such as inserting, removing, and sorting elements. Arrays have more limited operations.

In summary, arrays are useful when you need to work with large amounts of numerical data and want control over memory usage, while lists are more versatile and suitable for storing and manipulating collections of diverse data types.

Difference between list and dictionary in Python

In Python, both lists and dictionaries are essential data structures that allow you to store and manipulate collections of data. However, they serve different purposes and have distinct characteristics.

A list (also known as an array) is a collection of items that can be of any data type, including strings, integers, floats, and other lists. Lists are denoted by square brackets [] and are ordered, meaning that the order of the elements matters. You can access individual elements in a list using their index (0-based). Lists are mutable, meaning they can be modified after creation.

Here's an example of creating a list:

my_list = ['apple', 1, 'banana', 2]

print(my_list[1]) # Output: 1

On the other hand, a dictionary is a collection of key-value pairs where each key is unique and maps to a specific value. Dictionaries are denoted by curly braces {} and are also mutable. The order of the key-value pairs does not matter.

Here's an example of creating a dictionary:

my_dict = {'name': 'John', 'age': 30}

print(my_dict['age']) # Output: 30

Key differences between lists and dictionaries:

Order: Lists are ordered, meaning the order of elements matters. Dictionaries are unordered, with no inherent ordering. Indexing: Lists can be indexed using integers (0-based), while dictionaries can be indexed using keys (which must be unique). Values: Lists can contain any data type, including other lists and dictionaries. Dictionaries only store scalar values, such as strings, integers, or floats. Lookup: In a list, you access elements by their index. In a dictionary, you access values using their corresponding keys. Size: Lists can have variable sizes during runtime. Dictionaries also have variable sizes and are dynamically resized when new key-value pairs are added or removed. Mutability: Both lists and dictionaries are mutable in Python, meaning they can be modified after creation. Memory Usage: Lists tend to use more memory than dictionaries because each element is stored separately.

When deciding between using a list or dictionary, consider the following:

Use a list when you need to store a collection of items where order matters. Use a dictionary when you need to map keys to values and quickly look up specific values.

In summary, both lists and dictionaries are essential data structures in Python. While they share some similarities, their distinct characteristics make one more suitable for certain situations than the other.