리셋 되지 말자

정렬 본문

Python

정렬

kyeongjun-dev 2021. 6. 13. 18:02

sort() 와 sorted() 차이

sort() 는 list에 사용 가능하며 제자리 정렬이다. 즉 list 자체를 변경한다

sorted()는 정렬된 새로운 list를 반환한다. 

 

TMI

파이썬의 sort는 TimSort를 사용한다고 한다. 최선 경우 O(n)이고, 삽입정렬과 병합정렬을 적절히 최적화하여 사용한다고 한다.

 

- str 정렬

str = 'bca'
str = ''.join(sorted(str))
print(str)

abc

 

- 길이를 기준으로 정렬

l = ['d', 'bb', 'ccc', 'aaaa']

l.sort(key=len)
print(l)

['aaaa', 'ccc', 'bb', 'd']

 

- 특정 번째 문자로 정렬 (람다 미사용)

def fn(s):
    return s[0], s[-1]

l = ['cde', 'cfc', 'abc']
l.sort(key=fn)
print(l)


['abc', 'cfc', 'cde']

 

- 특정 번째 문자로 정렬 (람다 사용)

l = ['cde', 'cfc', 'abc']

l.sort(key= lambda x : (x[0], x[-1]))
print(l)

['abc', 'cfc', 'cde']

원래라면 가운데 기준으로, d가 f보다 앞서므로 'abc', 'cde', 'cfc'가 되어야함.

Comments