Difference between List and Dictionary in Python
Last Updated :
05 Jul, 2023
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
List = [ "Geeks" , "For" , "Geeks" ]
print ( "List containing multiple values: " )
print ( List [ 0 ])
print ( List [ 2 ])
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
Dict = { 1 : 'Geeks' , 2 : 'For' , 3 : 'Geeks' }
print ( "Dictionary with the use of Integer Keys: " )
print ( Dict )
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:
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
import time
d = { 'john' : 1 , 'alex' : 2 }
x = time.time()
print ( "Accessing dictionary elements:" )
for key in d:
print (d[key], end = " " )
y = time.time()
print ( "\nTime taken by dictionary:" , y - x)
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
import time
dict_name = { "bob" : 12 , "john" : 11 }
list_name = [ 2 , 3 , 4 , 5 , 1 ]
x = time.time()
L = dict_name[ "bob" ]
y = time.time()
print ( "Time taken by dictionary:" , y - x)
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
Please Login to comment...