코르시카 2021. 3. 14. 16:30

참고 :

https://inma.tistory.com/137

 

[Python] list.sort()와 sorted(list) 차이

파이썬에서 .sort() 메서드와 built-in 함수 sorted( ) 의 차이를 알아봅니다. .sort() list.sort([reverse= ][, key= ]) - 원본 리스트를 정렬하되 반환 값은 None 입니다. - 원본 리스트의 순서를 변경합니다...

inma.tistory.com


■ list.sort( )

1) 정의 :

- 원본 리스트를 정렬하여 sorted 보다 빠름, 반환값 None (원본자체를 변경하므로)

- sort / sorted 자체는 key 없을 때 tuple의 경우 index 순으로 정렬이 진행된다

list.sort([reverse=<True|False>][, key=<function>])

# reverse : 내림차순 정리, 왼쪽이 더 크다, 기본 False

2) 예시 :

l1 = [1, 3, 2]
print(l1.sort())
>>> None

print(l1)
>>> [1, 2, 3]

# sorting using key index = 0
arr.sort(reverse=False,key = lambda x : x[0] )
print(arr)
>>> [[28, 'jy'], [35, 'kg'], [51, 'ak']]

# sorting using key index = 1
arr = [[28, "jy"] , [35 , "kg"] , [51 , "ak"]]
arr.sort(reverse=False,key = lambda x : x[1] ) # 사전형식 + length
print(arr)
>>> [[51, 'ak'], [28, 'jy'], [35, 'kg']]

 

 

■ sorted(<list>)

1) 정의 : 

- 정렬된 새로운 리스트를 반환하여 원본에 영향을 미치지 않음, 대신 execution이 조금 더 걸린다

- 모든 iterable에 동작하는 함수 ( list, dictionary, set, tuple, string)...

sorted(iterable[, key=<function>][, reverse=<True|False>])

# reverse : 내림차순 정리, 왼쪽이 더 크다

2) 예시 :

sort의 예시 결과와 동일!

 

 

■ multiple attributes

1) 예시

# 1) 튜플
s = sorted(s, key = lambda x: (x[0], x[1]))
# 2) operator 라이브러리
import operator # faster / avoids python function call
s.sort(key = operator.itemgetter(1, 2))

 

 

■ string의 sorting

1) 정의 : 

- 사전식, 길이 정렬 === [뒤에오는 alphabet, 길이가 긴 것] 이 더  "높음"

- 숫자가 더 "낮은" 순위, 길이보다 사전순이 선정렬 대상

 

2) 예시 :

> 같은 문자 포함중일 때

_list = [
    
    'abcd',
    'abcde',
    'abcdd'
    
    ]
    
print(f'{sorted(_list)}')

>>> ['abcd', 'abcdd', 'abcde']

> 숫자, 'alphabet / 길이' 의 정렬 순위 예시

_list = [
    
    'abcd',
    '123',
    '12222',
    '1234'
    
    ]
    
print(f'{sorted(_list)}')

>>> ['12222', '123', '1234', 'abcd']

 

반응형