Problems: py.checkio.org/en/mission/sort-array-by-element-frequency/
My Solution:
python
접기def frequency_sort(items): # your code here count_value = dict.fromkeys(items) count_list = [items.count(x) for x in count_value] dict_list = dict(zip(count_value, count_list)) sort_list = dict(sorted(dict_list.items(), key = (lambda x: x[1]), reverse=True)) new_list = [] for x in sort_list: new_list.extend([x for _ in range(sort_list[x])]) return new_list if __name__ == '__main__': print("Example:") print(frequency_sort([4, 6, 2, 2, 6, 4, 4, 4])) # These "asserts" are used for self-checking and not for an auto-testing assert list(frequency_sort([4, 6, 2, 2, 6, 4, 4, 4])) == [4, 4, 4, 4, 6, 6, 2, 2] assert list(frequency_sort(['bob', 'bob', 'carl', 'alex', 'bob'])) == ['bob', 'bob', 'bob', 'carl', 'alex'] assert list(frequency_sort([17, 99, 42])) == [17, 99, 42] assert list(frequency_sort([])) == [] assert list(frequency_sort([1])) == [1] print("Coding complete? Click 'Check' to earn cool rewards!")
A good solution that I see
python
접기def frequency_sort(items): return sorted(items, key=lambda x: (-items.count(x), items.index(x)))
'프로그래밍 문제 > [Python] CheckIO' 카테고리의 다른 글
[CheckIO] Sun angle (0) | 2021.01.03 |
---|---|
[CheckIO] pawn-brotherhood (0) | 2021.01.02 |
[CheckIO] Second Index (0) | 2020.12.24 |
[CheckIO] Popular words (0) | 2020.12.23 |
[CheckIO] non unique elements (0) | 2020.12.22 |
댓글