Open In App

Difference between List and Dictionary in Python

Improve
Improve
Like Article
Like
Save
Share
Report

Lists and Dictionaries in Python are inbuilt data structures that are used to store data. Lists are linear in nature whereas the dictionaries stored the data in key-value pair. In this article, we will see the difference between the two.

Lists in Python

Lists are just like arrays, declared in other languages. Lists need not be homogeneous always which makes it a most powerful tool in Python. A single list may contain data types like Integers, Strings, as well as Objects. Lists are mutable, and hence, even after their creation.

Example: In this example, we will see how to create a simple list as well as a multidimensional list in Python and access its values using the list index.

Python3




# Python program to demonstrate
# Lists
 
# Creating a List with
# the use of multiple values
List = ["Geeks", "For", "Geeks"]
print("List containing multiple values: ")
print(List[0]) 
print(List[2])
   
# Creating a Multi-Dimensional List
# (By Nesting a list inside a List)
List = [['Geeks', 'For'] , ['Geeks']]
print("\nMulti-Dimensional List: ")
print(List)


Output:

List containing multiple values: 
Geeks
Geeks

Multi-Dimensional List:
[['Geeks', 'For'], ['Geeks']]

Dictionary in Python

Python Dictionary on the other hand is an unordered collection of data values, used to store data values like a map, unlike other Data Types that hold only a single value as an element, Dictionary holds a key:value pair. Key-value is provided in the dictionary to make it more optimized. Each key-value pair in a Dictionary is separated by a colon (:) whereas each key is separated by a ‘comma’.

Example: In this example, we will see how to create a simple dictionary with similar key types as well as a dictionary with mixed key types.

Python3




# Creating a Dictionary 
# with Integer Keys
Dict = {1: 'Geeks', 2: 'For', 3: 'Geeks'}
print("Dictionary with the use of Integer Keys: ")
print(Dict)
   
# Creating a Dictionary 
# with Mixed keys
Dict = {'Name': 'Geeks', 1: [1, 2, 3, 4]}
print("\nDictionary with the use of Mixed Keys: ")
print(Dict)


Output:

Dictionary with the use of Integer Keys: 
{1: 'Geeks', 2: 'For', 3: 'Geeks'}

Dictionary with the use of Mixed Keys:
{1: [1, 2, 3, 4], 'Name': 'Geeks'}

Difference between a List and a Dictionary

The following table shows some differences between a list and a dictionary in Python:

List

Dictionary

The list is a collection of index value pairs like that of the array in C++.

The dictionary is a hashed structure of the key and value

pairs.

The list is created by placing elements in [ ] separated by commas “,”

The dictionary is created by placing elements in { } as “key”:”value”, each key-value pair is separated by commas “, “

The indices of the list are integers starting from 0.

The keys of the dictionary can be of any data type.

The elements are accessed via indices.

The elements are accessed via key-value pairs.

The order of the elements entered is maintained.

There is no guarantee for maintaining order.

Lists are orders, mutable, and can contain duplicate values. Dictionaries are unordered and mutable but they cannot contain duplicate keys.

Space-Time Trade-Off between List and Dictionary

It is more efficient to use a dictionary for the lookup of elements because it takes less time to traverse in the dictionary than a list.

Let’s consider a data set with 5000000 elements in a machine learning model that relies on the speed of retrieval of data. To implement this we have to choose wisely between two data structures i.e. list and dictionary. The dictionary is preferred because of less time and less space storage as dictionaries are implemented in the form of hash tables from Python 3.6 so it is never a space-time trade-off problem in dictionaries.

Example 1: In this example, we will iterate over the whole list and dictionary to see which is more efficient and takes less time to iterate.

Python3




# To calculate the time difference
import time
 
# Creating a dictionary
d ={'john':1, 'alex':2}
 
x = time.time()
 
# Accessing elements
print("Accessing dictionary elements:")
for key in d:
    print(d[key], end=" ")
 
y = time.time()
print("\nTime taken by dictionary:", y-x)
 
# Creating a List
c =[1, 2]
 
x = time.time()
 
print("\nAccessing List elements:")
for i in c:
    print(i, end=" ")
     
y = time.time()
print("\nTime taken by dictionary:", y-x)


Output:

Accessing dictionary elements:
1 2
Time taken by dictionary: 1.0013580322265625e-05

Accessing List elements:
1 2
Time taken by dictionary: 3.5762786865234375e-06

Example 2:

Here, in this example, we will see how much time is taken to fetch a particular element from a list or dictionary in Python. It will take more time to fetch a single element in a list than that of a dictionary because a dictionary uses hashtable for implementing the arrangement.

Python3




# Program to fetch particular
# elements of structure
 
import time
 
# Creating dictionary and list
dict_name ={"bob":12, "john":11}
list_name =[2, 3, 4, 5, 1]
 
# Time taken by dictionary
x = time.time()
L = dict_name["bob"]
y = time.time()
print("Time taken by dictionary:", y-x)
 
# Time taken by list
x = time.time()
L = list_name[2]
y = time.time()
print("\nTime taken by list:", y-x)


Output:

Time taken by dictionary: 9.5367431640625e-07

Time taken by list: 4.76837158203125e-07


Last Updated : 05 Jul, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads