# Python – Sort by Factor count

• Last Updated : 11 Oct, 2020

Given element list, sort by factor count of each element.

Input : test_list = [12, 100, 22]
Output : [22, 12, 100]
Explanation : 3, 5, 8 factors respectively of elements.

Input : test_list = [6, 11]
Output : [11, 6]
Explanation : 1, 4 factors respectively of elements.

Method #1 : Using sort() + len() + list comprehension

In this, we perform task of sorting using sort(), and len() and list comprehension is used for task of getting the count of factors.

## Python3

 `# Python3 code to demonstrate working of``# Sort by Factor count``# Using sort() + len() + list comprehension`` ` ` ` `def` `factor_count(ele):`` ` `    ``# getting factors count``    ``return` `len``([ele ``for` `idx ``in` `range``(``1``, ele) ``if` `ele ``%` `idx ``=``=` `0``])`` ` ` ` `# initializing list``test_list ``=` `[``12``, ``100``, ``360``, ``22``, ``200``]`` ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# performing sort``test_list.sort(key``=``factor_count)`` ` `# printing result``print``(``"Sorted List : "` `+` `str``(test_list))`

Output:

```The original list is : [12, 100, 360, 22, 200]
Sorted List : [22, 12, 100, 200, 360]
```

Method #2 : Using lambda + sorted() + len()

In this, task of sorting is done using sorted(), and lambda function is used to feed to sorted to get factors.

## Python3

 `# Python3 code to demonstrate working of``# Sort by Factor count``# Using lambda + sorted() + len()`` ` `# initializing list``test_list ``=` `[``12``, ``100``, ``360``, ``22``, ``200``]`` ` `# printing original list``print``(``"The original list is : "` `+` `str``(test_list))`` ` `# performing sort using sorted(), lambda getting factors``res ``=` `sorted``(test_list, key``=``lambda` `ele: ``len``(``    ``[ele ``for` `idx ``in` `range``(``1``, ele) ``if` `ele ``%` `idx ``=``=` `0``]))`` ` `# printing result``print``(``"Sorted List : "` `+` `str``(res))`

Output:

```The original list is : [12, 100, 360, 22, 200]
Sorted List : [22, 12, 100, 200, 360]
```

My Personal Notes arrow_drop_up