In this article, we will update the values of a list of dictionaries.
Method 1: Using append() function
The append function is used to insert a new value in the list of dictionaries, we will use pop() function along with this to eliminate the duplicate data.
Syntax:
- dictionary[row][‘key’].append(‘value’)
- dictionary[row][‘key’].pop(position)
Where:
- dictionary is the input list of dictionaries
- row is the row that we want to update
- value is the new value to be updated
- key is the column to be updated
- position is the place where the old value is there
Python program to create a list of dictionaries
Python3
# create a list of dictionaries # with student data data = [ { 'name' : 'sravan' , 'subjects' : [ 'java' , 'python' ]}, { 'name' : 'bobby' , 'subjects' : [ 'c/cpp' , 'java' ]}, { 'name' : 'ojsawi' , 'subjects' : [ 'iot' , 'cloud' ]}, { 'name' : 'rohith' , 'subjects' : [ 'php' , 'os' ]}, { 'name' : 'gnanesh' , 'subjects' : [ 'html' , 'sql' ]} ] # display first student print (data[ 0 ]) # display all student data |
Output:
{'name': 'sravan', 'subjects': ['java', 'python']} [{'name': 'sravan', 'subjects': ['java', 'python']}, {'name': 'bobby', 'subjects': ['c/cpp', 'java']}, {'name': 'ojsawi', 'subjects': ['iot', 'cloud']}, {'name': 'rohith', 'subjects': ['php', 'os']}, {'name': 'gnanesh', 'subjects': ['html', 'sql']}]
Time Complexity: O(1)
Auxiliary Space: O(1)
Update values in the above list of dictionaries
Python3
# update first student python subject # to html data[ 0 ][ 'subjects' ].append( 'html' ) data[ 0 ][ 'subjects' ].pop( 1 ) # update third student java subject # to dbms data[ 2 ][ 'subjects' ].append( 'dbms' ) data[ 2 ][ 'subjects' ].pop( 1 ) # update fourth student php subject # to php-mysql data[ 3 ][ 'subjects' ].append( 'php-mysql' ) data[ 3 ][ 'subjects' ].pop( 0 ) # display updated list data |
Output:
[{'name': 'sravan', 'subjects': ['java', 'html']}, {'name': 'bobby', 'subjects': ['c/cpp', 'java']}, {'name': 'ojsawi', 'subjects': ['iot', 'dbms']}, {'name': 'rohith', 'subjects': ['os', 'php-mysql']}, {'name': 'gnanesh', 'subjects': ['html', 'sql']}]
Time complexity: O(1)
Auxiliary space: O(1)
Method 2: Using insert() function
This function is used to insert updated data based on an index.
Syntax:
- dictionary[row][‘key’].insert(index,’value’)
- dictionary[row][‘key’].pop(position)
Where,
- dictionary is the input list of dictionaries
- row is the row that we want to update
- value is the new value to be updated
- index is the position to be updated
- key is the column to be updated
- position is the place where the old value is there
Example: Python program to update the values in a list of dictionaries
Python3
# update first student python subject # to html data[ 0 ][ 'subjects' ].insert( 0 , 'html' ) data[ 0 ][ 'subjects' ].pop( 1 ) # update third student java subject # to dbms data[ 2 ][ 'subjects' ].insert( 0 , 'dbms' ) data[ 2 ][ 'subjects' ].pop( 1 ) # update fourth student php subject # to php-mysql data[ 3 ][ 'subjects' ].insert( 1 , 'php-mysql' ) data[ 3 ][ 'subjects' ].pop( 0 ) # display updated list data |
Output:
[{'name': 'sravan', 'subjects': ['html', 'python']}, {'name': 'bobby', 'subjects': ['c/cpp', 'java']}, {'name': 'ojsawi', 'subjects': ['dbms', 'cloud']}, {'name': 'rohith', 'subjects': ['php-mysql', 'os']}, {'name': 'gnanesh', 'subjects': ['html', 'sql']}]
The time complexity of updating the subjects of each student is O(1), since we are only inserting and popping elements from a list which takes constant time.
The space complexity of the program is also O(1), since we are not using any additional space other than the given list of dictionaries data.