Python | Adding value to sublists
Last Updated :
31 Mar, 2023
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))
OutputThe 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), where n is the number of elements in the original list (test_list).
Auxiliary space: O(n), as a new list (res) is created with the same number of elements as the original list.
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))
OutputThe 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) where n is the number of sublists in the test_list.
Auxiliary space: O(n) for the new list 'res' created using the list comprehension.
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))
OutputThe 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), where n is the length of the input list.
Auxiliary space: O(n), where n is the length of the input list.
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
OutputThe 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)
Method #5: Using itertools.chain and zip:
Python3
import itertools # Import the itertools module
test_list = [[1, 3], [3, 4], [6, 5], [4, 5]] # Initialize the list of lists
K = "GFG" # Declare the element to be inserted
# printing original list
print("The original list : " + str(test_list))
res = [list(itertools.chain(i, [K])) for i in test_list]
# Use list comprehension and itertools.chain to add the element K to each sublist in the list of lists
# itertools.chain takes multiple iterables as arguments and returns a single, flatten iterable that contains elements from all the input iterables
# Here, i is each sublist in test_list, and [K] is a list with a single element K
# The result of itertools.chain(i, [K]) is a flatten list that contains all elements in i followed by K
# The list comprehension [list(itertools.chain(i, [K])) for i in test_list] applies this operation to each sublist in test_list and collects the results into a new list of lists
print("The list after adding element : " + str(res)) # Print the result
# This code is contributed by Jyothi pinjala.
OutputThe 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*k)
Method #6: Using numpy
To use numpy we need to install it first. You can install it using the following command: pip install numpy
Step by step approach:
- Import numpy module using import numpy as np
- Convert test_list into numpy array using np.array(test_list)
- Append the value 'K' to the numpy array using np.append()
- Reshape the numpy array to the original shape using .reshape() method
- Convert the numpy array back to list using .tolist() method
Python3
import numpy as np
# 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 numpy
# appending single value
test_np = np.array(test_list)
res_np = np.append(test_np, np.full((len(test_list), 1), K), axis=1).reshape(len(test_list), -1).tolist()
# printing result
print("The list after adding element : " + str(res_np))
Output:
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) (where n is the number of elements in the list)
Auxiliary space: O(n) (for creating a numpy array)
Method #7: Using extend() method inside a for loop
Use a for loop to iterate through each sublist of the original list.
Use the extend() method to append the value to each sublist.
Python3
test_list = [[1, 3], [3, 4], [6, 5], [4, 5]]
K = "GFG"
for sublist in test_list:
sublist.extend([K])
print("The list after adding element : " + str(test_list))
OutputThe list after adding element : [[1, 3, 'GFG'], [3, 4, 'GFG'], [6, 5, 'GFG'], [4, 5, 'GFG']]
Time complexity: O(n), where n is the length of the list.
Auxiliary space: O(1), because no additional data structure is created.
Similar Reads
Python - Index Value Summation List To access the elements of lists, there are various methods. But sometimes we may require to access the element along with the index on which it is found and compute its summation, and for that, we may need to employ different strategies. This article discusses some of those strategies. Method 1: Nai
4 min read
Python - Incremental Sublist Sum Sometimes we need to group elements and grouping techniques and requirements vary accordingly. One such way to group the elements is by the iâth size in list which stores the dictionary of index keys with values of summation of subsequent size i. Letâs discuss certain ways in which this can be done.
3 min read
Python - Add Values to Dictionary of List A dictionary of lists allows storing grouped values under specific keys. For example, in a = {'x': [10, 20]}, the key 'x' maps to the list [10, 20]. To add values like 30 to this list, we use efficient methods to update the dictionary dynamically. Letâs look at some commonly used methods to efficien
3 min read
Python | Add similar value multiple times in list Adding a single value in list is quite generic and easy. But to add that value more than one time, generally, a loop is used to execute this task. Having shorter tricks to perform this can be handy. Let's discuss certain ways in which this can be done. Method #1 : Using * operator We can employ * op
5 min read
Python | Prefix Sum Subarray till False value The prefix array is quite famous in the programming practice. This article would discuss a variation of this scheme. This deals with the cumulative list sum till a False value, and again starts cumulation from the occurrence of True value. Let's discuss certain ways in which this can be performed. M
6 min read
Python - Adding Tuple to List and Vice - Versa Adding a tuple to a list in Python can involve appending the entire tuple as a single element or merging its elements into the list. Conversely, adding a list to a tuple requires converting the list to a tuple and concatenating it with the existing tuple, as tuples are immutable. For example, adding
4 min read