sorted, sort

Kaydenna92·2022년 6월 30일
0

Python

목록 보기
1/10
# list 자료형은 sorted, sort 정렬 메서드를 제공한다


# sorted()
# sorted(array) # 정렬한 결과를 list형태로 반환

# 정수 정렬
array = [2,6,1,9,7]
print(array)
print(sorted(array))

# 문자열 정렬
s = 'zdwqsgfrg'
print(sorted(s)) # ['d', 'f', 'g', 'g', 'q', 'r', 's', 'w', 'z'] 
print(''.join(sorted(s))) # dfggqrswz # 문자열의 형태로 다시 결합하려면 join함수를 사용한다

# key = 옵션을 지정해 정렬을 위한 키 또는 함수를 별도로 지정할 수 있다.
# 예) 정렬을 위한 함수로 길이를 구하는 len을 지정한 경우
c = ['ccc', 'bbbbb','a','dd']
result = sorted(c, key=len)
print(result) # ['a', 'dd', 'ccc', 'bbbbb']

# 함수를 정의하여 정렬하기 - 첫 문자열과 마지막 문자열 순으로 정렬을 하도록 지정
d = ['cde', 'cfc', 'abc']
def func(s):
    return s[0], s[-1]
print(sorted(d, key = func)) # ['abc', 'cfc', 'cde']

# lambda 함수를 이용하면 별도로 함수를 정의하지 않고 한 줄로 처리할 수 있다
print(sorted(d, key = lambda x : (x[0], x[-1]))) # ['abc', 'cfc', 'cde']





# sort() 메서드는 None 을 반환하므로 주의가 필요하다
a = [2,5,1,4,3]
a.sort() # a라는 list 자체를 정렬한다. in-place-sort
print(a)





# 파이썬의 sorted()는 Timsort를 사용
# 팀 피터스가 피터 매킬로이의 1933년 논문을 기반으로 2002년도에 파이썬을 위해 c로 구현한 알고리즘으로 팀 피터스의 이름을 따 팀 소트로 불린다.
# 개별적인 단일 알고리즘이 아니라 삽입정렬과 병합 정렬을 휴리스특하게 적절히 조합해 사용하는 정렬 알고리즘
# 대부분의 경우 정렬이 필요할 때는 파이썬의 정렬 함수를 사용하는 편이 가장 빠르다.
profile
persistently

0개의 댓글