티스토리 뷰

반응형

파이썬 정렬 함수 sorted() 

sorted()에 대해 가볍게 배우고 알고리즘 문제 풀어보기

 


숫자, 문자 모두 정렬이 가능하다. 

 

>>> a = [2, 5, 1, 9, 7] 

>>> sorted(a)

[1, 2, 5, 7, 9]

 

>>> b = 'zbdaf'

>>> sorted(b)

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


정렬된 값드를 다시 문자로 만들려면 join()으로 

 

>>> b = 'zbdaf'

>>> '',join(sorted(b))

'abdfz'

 


sorted()는 key = option을 지정해 정렬을 위한 키 또는 함수를 별도로 지정할 수 있다. 

 

key = len 이면 길이 기준으로 정렬이 된다는 의미이다. 

>>> c = [ 'ccc' , 'aaaa', 'd', 'bb']

>>> sorted(c, key=len)

>>> [ 'd', 'bb', 'ccc', 'aaa'].

 

함수를 이용해 key를 정의할 수 있다. 

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

def function(s):

# 첫 문자열 s[0] 과 마지막 문자열 s[-1] 순으로 정렬해주세요.

return s[0], s[-1]

 

print(sorted(a, key=function)

# 함수로 조건을 넣지 않았다면 abc, cde, cfc 로 출력이 됐을 것이다. 

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

 


 

'람다표현식'을 사용하여 함수를 별도 지정하지 않고 한 줄로 처리할 수 있다.

 

람다함수란? > 익명함수(Anonymous function )

lambda 매개변수 : 표현식

즉 def로 함수를 정의할 필요 없이 한줄로 해결할 수 있게 된다. 많은 사용은 가독성이 떨어질 수 있으니 주의해서 쓸 필요가 있다. 

 

ex)

일반 함수표현식

 

>>> def hap(x, y):
...   return x + y
...
>>> hap(10, 20)
30

 

람다표현식

 

>>> (lambda x,y: x + y)(10, 20)
30

 

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

>>> sorted(a, key=lambda s: (s[0], s[-1]))

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

 

 

 


 

배운걸로 알고리즘 풀어보기

 

 

!!!! 문제 풀기전 List, Dictionary 개념을 모른다면? !!!

 

https://algoroot.tistory.com/50

 

[python] 파이썬의 자료형 List, Dictionary 리스트,딕셔너리

리스트와 딕셔너리는 파이썬을 사용하면서 가장 빈번하게 접하게 되는 자료형이다. 1. 리스트 List = [] 순서대로 저장하는 시퀀스이자 변경가능한 목록(Mutable List) 리스트 선언 방식 >>> a = list() or

algoroot.tistory.com

 

이 밖에 더 필요한 개념들은 문제마다 필요한 개념의 링크를 첨부하겠다.

 

문제풀어보기

https://algoroot.tistory.com/49

 

[leetcode/python] 그룹 애너그램 (Group Anagrams) 풀이

https://leetcode.com/problems/group-anagrams/ 문제를 풀기 앞서 필자는 파이썬문법을 모르는 사람임을 밝힌다. 그래서 파이썬 문법,용어도 공부하면서 풀기에 글이 길어질 수 있으며, 필자와 같은 상황에

algoroot.tistory.com

 

Reference :

[책만] 파이썬 알고리즘 인터뷰,

https://wikidocs.net/64

반응형