[TIL]21.09.09 Python sorted 함수의 활용

Seung Joo·2021년 9월 9일
0

TIL

목록 보기
31/31
post-thumbnail

1. python sorted

word.find

word = 'abcdeaa'
print(sorted(word, key=word.find))
# >> ['a', 'a', 'a', 'b', 'c', 'd', 'e']

word = 'hello'
word2 = 'steve'
word = sorted(word, key=word.find)
word2 = sorted(word2, key=word2.find)
print(word, word2, sep='\n')
# >> ['h', 'e', 'l', 'l', 'o']
# >> ['s', 't', 'e', 'e', 'v']

key를 word.find로 했을 때 순서대로 확인하면서 등장하는 단어와 동일한 단어로 정렬해준다.
알파벳 순서와 상관없이 첫 등장한 위치부터 중복되는 단어를 순서대로 나열해주는 것이 특징이다.

lambda의 사용예시

1. 리스트에 str.lower()함수를 적용하여 정렬

words = ['a', 'Albert' ,'Chris', 'Brown']
print(sorted(words, key=lambda x : x.lower()))
# >> ['a', 'Albert', 'Brown', 'Chris']

리스트의 경우 위와 같은 방법으로 사용할 수 있다.

2. 딕셔너리에 키, 값을 기준으로 정렬

# key 기준 정렬
temp = {'c' : 1, 'a' : 5, 'b' : 3, 'd' : 2}
print(sorted(temp.items(), key=lambda x : x[0]))
# >> [('a', 5), ('b', 3), ('c', 1), ('d', 2)]

sorted 이후 튜플 리스트를 반환해준다.
만약 딕셔너리 형태로 다시 받고 싶다면 dict로 감싸주면 된다.

print(dict(sorted(temp.items(), key=lambda x : x[0])))
# >> {'a': 5, 'b': 3, 'c': 1, 'd': 2}

만약 값을 기준으로 정렬하고 싶다면 key=lambda x : x[1]로 바꿔주면 된다.

위와 같이 여러가지 방법을 적용하여 정렬할 수 있다. 다만 mutable한 자료형이어야 한다.

profile
조금씩 천천히

0개의 댓글