본문 바로가기

Sorting 본문

Algorithms/Sorting

Sorting

Louisus 2020. 5. 7. 21:27
728x90

1. 리스트 sort

a = [(1, 2), (0, 1), (5, 1), (5, 2), (3, 0)] 

 

# 인자없이 그냥 sorted()만 쓰면, 리스트 아이템의 각 요소 순서대로 정렬을 한다. 

b = sorted(a) 

# b = [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)] 

 

# key 인자에 함수를 넘겨주면 해당 함수의 반환값을 비교하여 순서대로 정렬한다. 

c = sorted(a, key = lambda x : x[0]) 

# c = [(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)] 

 

d = sorted(a, key = lambda x : x[1]) 

# d = [(3, 0), (0, 1), (5, 1), (1, 2), (5, 2)] 

 

# 아이템 첫 번째 인자를 기준으로 오름차순으로 먼저 정렬하고, 

# 그리고 그 안에서 다음 두 번째 인자를 기준으로 내림차순으로 정렬하게 하려면, 다음과 같이 할 수 있다. 

e = [(1, 3), (0, 3), (1, 4), (1, 5), (0, 1), (2, 4)]

f = sorted(e, key = lambda x : (x[0], -x[1])) 

# f = [(0, 3), (0, 1), (1, 5), (1, 4), (1, 3), (2, 4)]


https://docs.python.org/3/howto/sorting.html?highlight=sorting#key-functions

 

2. 딕셔너리 sort

기본적으로 key 값을 추출해서 sort

 

value 값으로 sort 하려면 key를 활용

 

#dict

myDict = {3:1,2:3,1:4}

 

# [(3, 1), (2, 3), (1, 4)]

sorted(myDict.items(),key=lambda x: x[1])

 

# 2번째 문자를 기준으로 정렬(각각 e, i, y)

# ["hello", "hi", "python"]

sorted(['hello','hi', 'python'],key=lambda x:x[1])

 

 

Comments