ADVERTISEMENT
ADVERTISEMENT

Python program to order tuples by list

Here, we have a list of tuples and a sorting list. We need to order the tuples of the tuple list using the sorting list provided in Python programming language.
Submitted by Shivang Yadav, on June 22, 2021

Python programming language is a high-level and object-oriented programming language. Python is an easy to learn, powerful high-level programming language. It has a simple but effective approach to object-oriented programming.

Tuples in Python is a collection of items similar to list with the difference that it is ordered and immutable.

Example:

tuple = ("python", "includehelp", 43, 54.23)

List is a sequence data type. It is mutable as its values in the list can be modified. It is a collection of ordered set of values enclosed in square brackets [].

Order Tuples by List

We are given a list of tuples and a sorting list. We will create a python program for sorting list of tuples based on the values of the sorting list.

Input:
tupList = [('l', 5), ('k', 2), ('a', 1), ('e', 6)], sortList = ['l', 'a', 'k', 'e']

Output:
[('l', 5), ('a', 1), ('k', 2), ('e', 6)]

We need to sort the element of the list of tuples in python based on the provided sortList. Python provides multiple ways to perform the task. Some of them are :

Method 1:

A method to sort the list of tuples based on a list is by creating an empty dictionary and storing all list elements as keys with empty value. Then feed values to the dictionary.

This is done using a combination of setdefault() + sorted() + lambda function.

Program:

# Python program to order tuples by list

# Creating and printing tuple list and list 
tupList = [('l', 5), ('k', 2), ('a', 1), ('e', 6)]

print("The original list is : " + str(tupList))

sortingList = ['l', 'a', 'k', 'e']
print("The sorting list is " + str(sortingList))

# Sorting tuple list based on Sorting list 
valDict = dict()
for key, ele in enumerate(sortingList):
	valDict.setdefault(ele, []).append(key)	
sortedList = sorted(tupList, key = lambda ele: valDict[ele[0]].pop())

# Printing sorted List 
print("The ordered tuple list based on tuple list: " + str(sortedList))

Output:

The original list is : [('l', 5), ('k', 2), ('a', 1), ('e', 6)]
The sorting list is ['l', 'a', 'k', 'e']
The ordered tuple list based on tuple list: [('l', 5), ('a', 1), ('k', 2), ('e', 6)]

Method 2:

Another method to sort the list of tuples is by creating a dictionary with values of the list of tuples. Then, we will use list comprehension to store the values of the dictionary sorted by using sorting list.

Program:

# Python program to order list of tuples by sorted list

# creating and printing initial lists
tupList = [('l', 5), ('k', 2), ('a', 1), ('e', 6)]

print("The original list is : " + str(tupList))
sortingList = ['l', 'a', 'k', 'e']

print("The sorting list is " + str(sortingList))

# Sorting list of tuple 
Dic = dict(tupList)
sortedTupList = [(key, Dic[key]) for key in sortingList]

# Printing sorted List 
print("The ordered tuple list : " + str(sortedTupList))

Output:

The original list is : [('l', 5), ('k', 2), ('a', 1), ('e', 6)]
The sorting list is ['l', 'a', 'k', 'e']
The ordered tuple list : [('l', 5), ('a', 1), ('k', 2), ('e', 6)]

Python Tuple Programs »



ADVERTISEMENT
ADVERTISEMENT


Comments and Discussions!



ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.