Skip to content
Related Articles

Related Articles

Python Program to find tuple indices from other tuple list

View Discussion
Improve Article
Save Article
  • Last Updated : 24 Aug, 2022
View Discussion
Improve Article
Save Article

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 result.

Input : test_list = [(4, 5), (7, 6), (1, 0), (3, 4)], search_tup = [(3, 4), (8, 9), (7, 6), (1, 0)]

Output : [3, 1, 2]

Explanation : (3, 4) from search list is found on 3rd index on test_list, hence included in result.

Method #1 : Using lookup dictionary + enumerate() + list comprehension

In this, a lookup dictionary is formed to map all the tuples with matching one’s indices. Then lookup dictionary is used to get indices of mapped tuples as result using list comprehension.

Python3




# Python3 code to demonstrate working of
# Find tuple indices from other tuple list
# Using lookup dictionary + enumerate() + list comprehension
 
# initializing list
test_list = [(4, 5), (7, 6), (1, 0), (3, 4)]
              
# printing original list
print("The original list is : " + str(test_list))
 
# initializing search tuple
search_tup = [(3, 4), (8, 9), (7, 6), (1, 2)]
 
# creating lookup_dict
lookup_dict = {val: key for key,val in enumerate(test_list)}
 
# creating result list
res = [lookup_dict[idx] for idx in search_tup if idx in lookup_dict]
 
# printing result
print("The match tuple indices : " + str(res))


Output:

The original list is : [(4, 5), (7, 6), (1, 0), (3, 4)]
The match tuple indices : [3, 1]

Method #2 : Using list comprehension + enumerate()

In this, we perform the task of getting indices using enumerate(), and list comprehension is used for the task of iteration of all the elements of tuple and matching for equality.

Python3




# Python3 code to demonstrate working of
# Find tuple indices from other tuple list
# Using list comprehension + enumerate()
 
# initializing list
test_list = [(4, 5), (7, 6), (1, 0), (3, 4)]
              
# printing original list
print("The original list is : " + str(test_list))
 
# initializing search tuple
search_tup = [(3, 4), (8, 9), (7, 6), (1, 2)]
 
# enumerate() gets all the indices
res = [idx for idx, val in enumerate(test_list) for ele in search_tup if ele == val]
 
# printing result
print("The match tuple indices : " + str(res))


Output:

The original list is : [(4, 5), (7, 6), (1, 0), (3, 4)]
The match tuple indices : [1, 3]

Method #3 : Using index() method

Python3




# Python3 code to demonstrate working of
# Find tuple indices from other tuple list
 
# initializing list
test_list = [(4, 5), (7, 6), (1, 0), (3, 4)]
             
# printing original list
print("The original list is : " + str(test_list))
 
# initializing search tuple
search_tup = [(3, 4), (8, 9), (7, 6), (1, 2)]
 
res=[]
for i in search_tup:
    if i in test_list:
        res.append(test_list.index(i))
 
# printing result
print("The match tuple indices : " + str(res))


Output

The original list is : [(4, 5), (7, 6), (1, 0), (3, 4)]
The match tuple indices : [3, 1]

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!