Skip to content
Related Articles

Related Articles

Python – Find the frequency of numbers greater than each element in a list
  • Last Updated : 24 Oct, 2020

Given a list, a new list is constructed that has frequency of elements greater than or equal to it, corresponding to each element of the list.

Input : test_list = [6, 3, 7, 1, 2, 4] 
Output : [2, 4, 1, 6, 5, 3] 
Explanation : 6, 7 are greater or equal to 6 in list, hence 2.
Input : test_list = [6, 3, 7] 
Output : [2, 3, 1] 
Explanation : 6, 7 are greater or equal to 6 in list, hence 2. 

Method 1 : Using sum() and list comprehension

Here, nested list comprehension is used to access each element of the list and sum() is used to get summation of elements which are greater than or equal to the indexed element. 

Python3






# initializing list
test_list = [6, 3, 7, 1, 2, 4]
  
# printing original list
print("The original list is : " + str(test_list))
  
# sum() performs counts of element which are Greater or equal to 
res = [sum(1 for ele in test_list if sub <= ele) for sub in test_list] 
      
# printing result 
print("Greater elements Frequency list : " + str(res))

 
 Output:

The original list is : [6, 3, 7, 1, 2, 4]

Greater elements Frequency list : [2, 4, 1, 6, 5, 3]

 

Method 2 : Using sorted(), bisect_left() and list comprehension

In this, we get elements smaller than the element using bisect_left(). Then, subtracting the number so obtained from total length gives us count of elements greater than element.
 

Python3




# import module
import bisect
  
# initializing list
test_list = [6, 3, 7, 1, 2, 4]
  
# printing original list
print("The original list is : " + str(test_list))
  
# sorting before bisect 
temp = sorted(test_list)
  
# getting total greater elements for each element
res = [len(test_list) - bisect.bisect_left(temp, ele) for ele in test_list]
      
# printing result 
print("Greater elements Frequency list : " + str(res))

Output:

The original list is : [6, 3, 7, 1, 2, 4]

Greater elements Frequency list : [2, 4, 1, 6, 5, 3]

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :