파이썬 리스트 한글,영어 정렬
조회수 3720회
파이썬 리스트를 정렬 할 때, 영어가 먼저 오게 되는데, 한글이 먼저 오게 하는 방법이 있을까요??
names = [ 'C', 'A B', 'ㄴ', 'ㄱ', 'D A', 'A A' , 'ㄷ']
sorted(names)
# Output
['A A', 'A B', 'C', 'D A', 'ㄱ', 'ㄴ', 'ㄷ']
# Desired Output
[ 'ㄱ', 'ㄴ', 'ㄷ', 'A A', 'A B', 'C', 'D A']
감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
더 좋은 방법이 있을겁니다.; 당장 떠오른 방법으로만 작성.
In [1]: names Out[1]: ['C', 'A B', 'ㄴ', 'ㄱ', 'D A', 'A A', 'ㄷ'] In [2]: sorted(names) Out[2]: ['A A', 'A B', 'C', 'D A', 'ㄱ', 'ㄴ', 'ㄷ'] In [3]: sorted(sorted(names), key=lambda c:0 if re.search('[ㄱ-힣]', c) else 1) Out[3]: ['ㄱ', 'ㄴ', 'ㄷ', 'A A', 'A B', 'C', 'D A']
댓글 입력