Python | sort()와 sorted() 메소드

Stellar·2021년 9월 26일
0

Python

목록 보기
18/36
post-thumbnail
post-custom-banner

# .sort()

>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5] # a의 값이 정렬됨과 동시에 완전히 수정되었다.

오직 리스트의 값을 정렬하며 리스트의 값이 완전히 수정되는 메소드이다.


# .sort(reverse=True) 매개 변수

# 일반 reverse 
>>> a = [1, 10, 5, 7, 6]
>>> a.reverse()
>>> a
[6, 7, 5, 10, 1]

# sort 사용
>>> a = [5, 2, 3, 1, 4]
>>> a
[5, 2, 3, 1, 4]
>>> a.sort(reverse=True)
>>> a
[5, 4, 3, 2, 1]

reverse를 사용하여 오름차순을 내림차순으로 변경 가능.


# sorted()

>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]

# 변수 입력
>>> a = [5, 2, 3, 1, 4]
>>> sorted(a)
[1, 2, 3, 4, 5]
>>> a
[5, 2, 3, 1, 4] # sorted는 임시적으로 정렬하는 메소드라서 원래 값은 그대로임.

리스트뿐만 아니라 모든 이터러블 타입을 임시로 정렬 가능하다.


# tuple, dictionary

# tuple
>>> b = (1, 3, 4, 2, 5)
>>> sorted(b)
[1, 2, 3, 4, 5]

# dic
>>> c = {1: 'f', 3: '14', 5: 'qk', 2: 'jf', 4: 'fdk'}
>>> sorted(c)
[1, 2, 3, 4, 5]
>>> c.values()
dict_values(['f', '14', 'qk', 'jf', 'fdk'])
>>> sorted(c.values())
['14', 'f', 'fdk', 'jf', 'qk']

dictionary의 경우 키와 값을 각각 별도로 정렬할 수 있고 sorted의 기본은 키 값으로 정렬된다.


# sorted(값, reverse=True) 매개 변수

>>> b = (1, 3, 4, 2, 5)
>>> sorted(b, reverse=True)
[5, 4, 3, 2, 1] # 임시적으로 정렬
>>> b
(1, 3, 4, 2, 5)

reverse를 사용하여 오름차순을 내림차순으로 변경 가능.


# 문자열 정렬

split()을 사용하여 문자열을 슬라이싱 후 key를 설정하여 어떤 정렬을 할 것인지 정한다.

# sort() + split()

>>> m = '나는 파이썬을 잘하고 싶다'
>>> m = m.split()
>>> m
['나는', '파이썬을', '잘하고', '싶다'] # split으로 공백을 기준으로 슬라이싱
>>> m.sort(key=len) # 문자열의 길이별로 정렬한다.
>>> m
['나는', '싶다', '잘하고', '파이썬을']

# sorted(split())

>>> test = 'This is a test string from Andrew'

# 공백 기준으로 슬라이싱 후 소문자부터 정렬
>>> sorted(test.split(), key=str.lower)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']

# upper는 작동하지 않네?
>>> sorted(test.split(), key=str.upper)
['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']

# split()만 사용가능하다.
>>> sorted(test.split())
['Andrew', 'This', 'a', 'from', 'is', 'string', 'test']

# 임시롤 변경되는 sorted의 특징에 따라 기존값은 보존된다. 
>>> test
'This is a test string from Andrew'

# 토끼굴


# 참고한 사이트

post-custom-banner

0개의 댓글