Python | Adding value to sublists
Sometimes, we just have to manipulate a list of lists by appending a similar value to all the sublists. Using a loop for achieving this particular task can be an option but sometimes leads to sacrificing the readability of code. It is always wanted to have a oneliner to perform this particular task. Let’s discuss certain ways in which this can be done.
Method #1: Using list comprehension can be used to perform this particular task using a similar looping construct but in just a single line. This increases code readability.
Python3
# Python3 code to demonstrate # appending single value # using list comprehension # initializing list of lists test_list = [[ 1 , 3 ], [ 3 , 4 ], [ 6 , 5 ], [ 4 , 5 ]] # printing original list print ( "The original list : " + str (test_list)) # declaring element to be inserted K = "GFG" # using list comprehension # appending single value res = [[i, j, K] for i, j in test_list] # printing result print ( "The list after adding element : " + str (res)) |
The original list : [[1, 3], [3, 4], [6, 5], [4, 5]] The list after adding element : [[1, 3, 'GFG'], [3, 4, 'GFG'], [6, 5, 'GFG'], [4, 5, 'GFG']]
Method #2 : Using list comprehension + “+” operator This method is quite similar to the above method, but the difference is that plus operator is used to add the new element to each sublist.
Python3
# Python3 code to demonstrate # appending single value # using list comprehension + "+" operator # initializing list of lists test_list = [[ 1 , 3 ], [ 3 , 4 ], [ 6 , 5 ], [ 4 , 5 ]] # printing original list print ( "The original list : " + str (test_list)) # declaring element to be inserted K = "GFG" # using list comprehension + "+" operator # appending single value res = [sub + [K] for sub in test_list] # printing result print ( "The list after adding element : " + str (res)) |
The original list : [[1, 3], [3, 4], [6, 5], [4, 5]] The list after adding element : [[1, 3, 'GFG'], [3, 4, 'GFG'], [6, 5, 'GFG'], [4, 5, 'GFG']]
Method #3 : Using for loop
Python3
# Python3 code to demonstrate # appending single value # initializing list of lists test_list = [[ 1 , 3 ], [ 3 , 4 ], [ 6 , 5 ], [ 4 , 5 ]] # printing original list print ( "The original list : " + str (test_list)) # declaring element to be inserted K = "GFG" res = [] for i in test_list: i.append(K) res.append(i) # printing result print ( "The list after adding element : " + str (res)) |
The original list : [[1, 3], [3, 4], [6, 5], [4, 5]] The list after adding element : [[1, 3, 'GFG'], [3, 4, 'GFG'], [6, 5, 'GFG'], [4, 5, 'GFG']]
Method #4: Using map() and lambda function
Here is the approach using map() and lambda function
Python3
# Python3 code to demonstrate # appending single value # initializing list of lists test_list = [[ 1 , 3 ], [ 3 , 4 ], [ 6 , 5 ], [ 4 , 5 ]] # printing original list print ( "The original list : " + str (test_list)) # Declaring element to be inserted K = "GFG" # Using map() and lambda function to add element to all sublists res = list ( map ( lambda x: x + [K], test_list)) print ( "The list after adding element : " + str (res)) #This code is contributed by Edula Vinay Kumar Reddy |
The original list : [[1, 3], [3, 4], [6, 5], [4, 5]] The list after adding element : [[1, 3, 'GFG'], [3, 4, 'GFG'], [6, 5, 'GFG'], [4, 5, 'GFG']]
Time complexity: O(n)
Auxiliary Space: O(n)
Please Login to comment...