Skip to content
Related Articles

Related Articles

Python | Find Min/Max in heterogeneous list

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 16 Sep, 2021

The lists in Python can handle different type of datatypes in it. The manipulation of such lists is complicated. Let’s say we have a problem in which we need to find the min/max integer value in which the list can contain string as a data type i.e heterogeneous. Let’s discuss certain ways in which this can be performed.

Method #1 : Using list comprehension + min()/max() + isinstance() 
This particular problem can be solved by filtering our search of min/max using the isinstance method, we can filter out the integer value and then can use min/max function to get required min/max value.

Python3




# Python3 code to demonstrate 
# Min / Max in heterogeneous list
# using list comprehension + min()/max() + isinstance()
 
# initializing list
test_list = [3, 'computer', 5, 'geeks', 6, 7]
 
# printing original list
print ("The original list is : " + str(test_list))
 
# using list comprehension + min()/max() + isinstance()
# Min / Max in heterogeneous list
res = min(i for i in test_list if isinstance(i, int))
 
# printing result
print ("The minimum value in list is : " + str(res))

Output : 

The original list is : [3, 'computer', 5, 'geeks', 6, 7]
The minimum value in list is : 3

 

Method #2 : Using lambda + key + max()/min() + isinstance() 
The above problem can also be solved using the lambda function as a key in the min()/max() along with the isinstance method which performs the task of checking for integer values.

Python3




# Python3 code to demonstrate 
# Min / Max in heterogeneous list
# using lambda + key + max()/min() + isinstance()
 
# initializing list
test_list = [3, 'computer', 5, 'geeks', 6, 7]
 
# printing original list
print ("The original list is : " + str(test_list))
 
# using lambda + key + max()/min() + isinstance()
# Min / Max in heterogeneous list
res = max(test_list, key = lambda i: (isinstance(i, int), i))
 
# printing result
print ("The maximum value in list is : " + str(res))

Output : 

The original list is : [3, 'computer', 5, 'geeks', 6, 7]
The maximum value in list is : 7

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!