Open In App

Python | Sort lists in tuple

Last Updated : 17 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with Python tuples, we can have a problem in which we need to sort the tuples which constitutes of lists and we need to sort each of them. Let’s discuss certain ways in which this task can be performed. 

Method #1 : Using tuple() + sorted() + generator expression This task can be performed using the combination of above functions. In this, we iterate through each list using generator expression and perform the sort operation using sorted(). 

Python3




# Python3 code to demonstrate working of
# Sort lists in tuple
# Using tuple() + sorted() + generator expression
 
# Initializing tuple
test_tup = ([7, 5, 4], [8, 2, 4], [0, 7, 5])
 
# printing original tuple
print("The original tuple is : " + str(test_tup))
 
# Sort lists in tuple
# Using tuple() + sorted() + generator expression
res = tuple((sorted(sub) for sub in test_tup))
 
# printing result
print("The tuple after sorting lists : " + str(res))


Output : 

The original tuple is : ([7, 5, 4], [8, 2, 4], [0, 7, 5])
The tuple after sorting lists : ([4, 5, 7], [2, 4, 8], [0, 5, 7])

  Method #2 : Using map() + sorted() This method performs the similar task as the above method, but it uses map() to extend the logic to each element of tuple, the task performed by list comprehension in above method. 

Python3




# Python3 code to demonstrate working of
# Sort lists in tuple
# Using map() + sorted()
 
# Initializing tuple
test_tup = ([7, 5, 4], [8, 2, 4], [0, 7, 5])
 
# printing original tuple
print("The original tuple is : " + str(test_tup))
 
# Sort lists in tuple
# Using map() + sorted()
res = tuple(map(sorted, test_tup))
 
# printing result
print("The tuple after sorting lists : " + str(res))


Output : 

The original tuple is : ([7, 5, 4], [8, 2, 4], [0, 7, 5])
The tuple after sorting lists : ([4, 5, 7], [2, 4, 8], [0, 5, 7])

method#3: for+sorted

Approach

this approach is, sorts the lists in the given tuple using a for loop and the sorted() function. 

Algorithm

1. Create an empty tuple sorted_lists to store the sorted lists
2. Loop through each list in the original tuple using a for loop
3. Use the sorted() function to sort each list and store it in a new variable sorted_list
4. Add the sorted list to the sorted_lists tuple using the += operator
5. Print the sorted tuple

Python3




original_tuple = ([7, 5, 4], [8, 2, 4], [0, 7, 5])
 
sorted_lists = ()
for lst in original_tuple:
    sorted_list = sorted(lst)
    sorted_lists += (sorted_list,)
 
print(sorted_lists)


Output

([4, 5, 7], [2, 4, 8], [0, 5, 7])

Time Complexity: The time complexity of the above program is O(NMlogM), where N is the number of lists in the tuple and M is the length of each list. This is because we loop through each list once and sorting each list takes O(M*logM) time.

Space Complexity: The space complexity of the above program is O(N*M), where N is the number of lists in the tuple and M is the length of each list. This is because we create a new tuple to store the sorted lists and each list has M elements.

Approach#4: Using lambda

In this approach, we are using map() function with an anonymous lambda function to apply the sorted() function to each list in the input tuple. The sorted() function sorts the elements of each list in ascending order, and the map() function applies this operation to all the lists in the input tuple. Finally, we convert the resulting iterable to a tuple.

Algorithm

1. Define the input tuple containing multiple lists.
2. Use the map() function with an anonymous lambda function to apply the sorted() function to each list in the input tuple.
3. Convert the resulting iterable to a tuple.
4. Print the resulting tuple.

Python3




tup = ([7, 5, 4], [8, 2, 4], [0, 7, 5])
 
result_tup = tuple(map(lambda lst: sorted(lst), tup))
 
print(result_tup)


Output

([4, 5, 7], [2, 4, 8], [0, 5, 7])

Time Complexity: O(mn*log(n)). The time complexity of the sorted() function is O(nlog(n)), where n is the length of the input list. In this code, we are using the sorted() function inside a lambda function that is passed to the map() function. The map() function applies this operation to all the lists in the input tuple, so the time complexity of this operation becomes O(mnlog(n)), where m is the number of lists in the input tuple. 

Auxiliary Space: O(m*n), where m is the number of lists in the input tuple, and n is the length of each list. We are creating a new list for each input list, so the size of the resulting tuple is the same as the size of the input tuple. Therefore, the space complexity is linear with respect to the input size.



Similar Reads

Python | Sort tuple list by Nth element of tuple
Sometimes, while working with Python list, we can come across a problem in which we need to sort the list according to any tuple element. These must be a generic way to perform the sort by particular tuple index. This has a good utility in web development domain. Let's discuss certain ways in which this task can be performed. Method #1: Using sort(
8 min read
Sort Tuple of Lists in Python
Sorting a tuple of lists in Python involves arranging the lists within the tuple based on a specific criterion. In this article, we will learn how to sort a tuple of a list in Python. Example: Input: ([2, 1, 5], [1, 5, 7], [5, 6, 5])After sorting based on the first element of each list, the expected output should be:Output: ([1, 2, 5], [1, 5, 7], [
3 min read
Python | Replace tuple according to Nth tuple element
Sometimes, while working with data, we might have a problem in which we need to replace the entry in which a particular entry of data is matching. This can be a matching phone no, id etc. This has it's application in web development domain. Let's discuss certain ways in which this task can be performed. Method #1: Using loop + enumerate() This task
8 min read
Python - Raise elements of tuple as power to another tuple
Sometimes, while working with records, we can have a problem in which we may need to perform exponentiation, i.e power of tuples. This problem can occur in day-day programming. Let’s discuss certain ways in which this task can be performed. Method #1: Using zip() + generator expression The combination of above functions can be used to perform this
8 min read
Python - Convert Tuple String to Integer Tuple
Interconversion of data is a popular problem developer generally deal with. One can face a problem to convert tuple string to integer tuple. Let's discuss certain ways in which this task can be performed. Method #1 : Using tuple() + int() + replace() + split() The combination of above methods can be used to perform this task. In this, we perform th
7 min read
Python - Convert Tuple to Tuple Pair
Sometimes, while working with Python Tuple records, we can have a problem in which we need to convert Single tuple with 3 elements to pair of dual tuple. This is quite a peculiar problem but can have problems in day-day programming and competitive programming. Let's discuss certain ways in which this task can be performed. Input : test_tuple = ('A'
10 min read
Python - Flatten tuple of List to tuple
Sometimes, while working with Python Tuples, we can have a problem in which we need to perform the flattening of tuples, which have listed as their constituent elements. This kind of problem is common in data domains such as Machine Learning. Let's discuss certain ways in which this task can be performed. Input : test_tuple = ([5], [6], [3], [8]) O
7 min read
Python Program to Convert Tuple Matrix to Tuple List
Given a Tuple Matrix, flatten to tuple list with each tuple representing each column. Example: Input : test_list = [[(4, 5), (7, 8)], [(10, 13), (18, 17)]] Output : [(4, 7, 10, 18), (5, 8, 13, 17)] Explanation : All column number elements contained together. Input : test_list = [[(4, 5)], [(10, 13)]] Output : [(4, 10), (5, 13)] Explanation : All co
8 min read
Python program to convert Set into Tuple and Tuple into Set
Let's see how to convert the set into tuple and tuple into the set. For performing the task we are use some methods like tuple(), set(), type(). tuple(): tuple method is used to convert into a tuple. This method accepts other type values as an argument and returns a tuple type value.set(): set method is to convert other type values to set this meth
7 min read
Python Program to find tuple indices from other tuple list
Given Tuples list and search list consisting of tuples to search, our task is to write a Python Program to extract indices of matching tuples. Input : test_list = [(4, 5), (7, 6), (1, 0), (3, 4)], search_tup = [(3, 4), (8, 9), (7, 6), (1, 2)]Output : [3, 1]Explanation : (3, 4) from search list is found on 3rd index on test_list, hence included in r
8 min read