Python | Test list element similarity

Given a list, your task is to determine the list is K percent same i.e has element that is populated more than K % times.

Given below are few methods to solve the task.
Method #1 Using collections.Counter

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate
# to check whether the list
# K percent same or not
from collections import Counter
  
# initializing list
ini_list1 = [1, 2, 3, 1, 1, 1, 1, 1, 3, 2]
  
# printing initial list
print ("Initial list", ini_list1)
  
# initializing K
K = 60
  
# code to check whether list is K % same or not
i, freq = Counter(ini_list1).most_common(1)[0]
  
if len(ini_list1)*(K / 100) <= freq:
    print("True")
else:
    print("False")

chevron_right


Output:

Initial list [1, 2, 3, 1, 1, 1, 1, 1, 3, 2] 
True

Method #2: Using dictionary and its values



filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate
# to check whether the list
# K percent same or not
from collections import Counter, defaultdict
  
# initializing list
ini_list1 = [1, 2, 3, 1, 1, 1, 1, 1, 3, 2]
  
# printing initial list
print ("Initial list", ini_list1)
  
# initializing K
K = 60
  
# code to check whether list is K % same or not
freq = defaultdict(int)
for x in ini_list1:
    freq[x] += 1
freq = freq.values()
if max(freq) >= (K / 100) * sum(freq):
    print ("True")
else:
    print ("False")

chevron_right


Output:

initial list [1, 2, 3, 1, 1, 1, 1, 1, 1, 1]
True



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.