Python program to Sort a List of Strings by the Number of Unique Characters

When it is required to sort a list of strings based on the number of unique characters, a method is defined that uses a ‘set’ operator, the ‘list’ method and the ‘len’ method.


Below is a demonstration of the same −

def my_sort_func(my_elem):
   return len(list(set(my_elem)))

my_list = ['python', "Will", "Hi", "how", 'fun', 'learn', 'code']
print("The list is : ")

my_list.sort(key = my_sort_func)

print("The result is :")


The list is :
['python', 'Will', 'Hi', 'how', 'fun', 'learn', 'code']
The result is :
['Hi', 'Will', 'how', 'fun', 'code', 'learn', 'python']


  • A method named ‘my_sort_func’ is defined, that takes a string as a parameter.

  • It first extracts the unique elements from the list using ‘set’, and converts it to a set and then extracts the length of the list.

  • Outside the method, a list of strings is defined and is displayed on the console.

  • The list is sorted by specifying the key as the previously defined method.

  • The result is displayed on the console.

Updated on: 13-Sep-2021


Kickstart Your Career

Get certified by completing the course

Get Started