[파이썬 문법] 정렬
Language/Python

[파이썬 문법] 정렬

 

sort()

- 리스트 자료형에서 제공하는 메소드다.

- 반환 값이 None이다. 원 리스트 자체를 제자리 정렬 In-place Sort 한다. 

sorted()

- 정렬 결과를 반환한다.

b = 'zbdaf'
sorted(b)

---
['a', 'b', 'd', 'f', 'z']


- join()을 이용해 다시 문자열로 결합할 수 있다

b = 'zdbaf'
"".join(sorted(b))

---
'abdfz'

 

- key= 옵션을 지정해 정렬을 위한 키 또는 함수를 지정할 수 있다. (sort()도 가능)

# 길이를 구하는 len함수로 정렬

c = ['ccc', 'aaaa', 'd', 'bb']
sorted(c, key=len)

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

- 첫 문자열을 첫번째 기준으로, 마지막 문자열을 두번째 기준으로 두고 정렬할 수 있다. 

 

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

def fn(s):
	return s[0], s[-1]
   
print(sorted(a, key=fn)

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

+ 람다 표현식을 이용하면 함수를 정의하지 않고 한 줄로 처리할 수 있다.

a = ['cde', 'cfc', 'abc']
sorted(a, key=lambda s: (s[0], s[-1]))

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

Reference : 책 <파이썬 알고리즘 인터뷰>