#!/bin/env python
# coding: utf-8
#===========================================================================
# 수행시간 측정을 위한 코드
import timeit
start = timeit.default_timer()
#===========================================================================
1. List 를 입력받아 빈도 수 순서대로 정렬하는 코드
#===========================================================================
# 리스트를 입력받아 빈도 수 순서로 정렬하는 코드
from collections import Counter
def frequency_sort(data):
rt_data = []
for d, c in Counter(data).most_common():
for i in range(c):
rt_data.append(d)
return rt_data
#==========================================================================
2. 테스트 코드
#===========================================================================
# 실행영역
if __name__ == '__main__':
print(frequency_sort([4, 6, 2, 2, 6, 4, 4, 4])) # 예상 실행결과 : [4, 4, 4, 4, 6, 6, 2, 2]
print(frequency_sort([4, 6, 2, 2, 6, 4, 2, 4, 4])) # 예상 실행결과 : [4, 4, 4, 4, 2, 2, 2, 6, 6]
print(frequency_sort(['b', 'b', 'c', 'a', 'b'])) # 예상 실행결과 : ['b', 'b', 'b', 'c', 'a']
print(frequency_sort([17, 99, 42])) # 예상 실행결과 : [17, 99, 42]
print(frequency_sort([])) # 예상 실행결과 : []
print(frequency_sort([1])) # 예상 실행결과 : [1]
#===========================================================================
3. 실행결과
4. 참고(고수의 해결방법)
def frequency_sort(data):
return sorted(data, key=lambda x: (-data.count(x), data.index(x)))
반응형
'Programming > Python' 카테고리의 다른 글
Python : 연속된 문자열의 갯수 구하기 (0) | 2020.03.01 |
---|---|
Python : Depth 있는 List 를 단일 List 로 정리 (0) | 2020.02.29 |
Python : 리스트 안에 중복된 자료를 리스트로 반환 (0) | 2020.02.29 |
Python : 시간 변환(24시간제 -> 12시간제) (0) | 2020.02.28 |
Python : 문자열 중 가장많이 사용된 글자 찾기 (0) | 2020.02.27 |