반응형
range(stop)
인수가 하나 일때 : 0 <= N < stop
0부터 시작해서 stop-1 까지의 정수 값을 만들어냄.
>>> list(range(5))
[0, 1, 2, 3, 4]
range([start,] stop)
인수가 두개 일때 : start <= N < stop
start부터 시작해서 stop-1 까지의 정수 값을 만들어냄.
>>> list(range(10, 20))
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
range([start,] stop [,step])
인수가 세개 일때 : start <= N < stop
step은 숫자 사이의 거리를 말한다.
start부터 시작해서 stop-1 까지의 step만큼 건너뛴 정수 값을 만들어냄.
# step = 2
>>> list(range(1, 11, 2))
[1, 3, 5, 7, 9]
# step = -2
>>> list(range(1, -11, -2))
[1, -1, -3, -5, -7, -9]
# step = 4
>>> list(range(-11, 11, 4))
[-11, -7, -3, 1, 5, 9]
sorted(iterable)
입력값을 정렬한 후 그 결과를 리스트로 리턴하는 함수이다.
# 문자열
>>> x = 'star'
>>> sorted(x)
['a', 'r', 's', 't']
# 리스트
>>> sorted([3,6,2,7,4])
[2, 3, 4, 6, 7]
# 튜플
>>> x = (1,3,2,6,4)
>>> sorted(x)
[1, 2, 3, 4, 6]
# reverse : 내림차순, key = abs 절댓값으로 정렬. 등 옵션추가가능.
>>> x = [6,4,3,5,2,1,-3,-2]
>>> sorted(x, key = abs, reverse = True)
[6, 5, 4, 3, -3, 2, -2, 1]
하지만, 여기서 주의할 점은 본래의 데이터 x 자체를 바꾸는 것이 아니라는 것이다.
>>> x = (1,3,2,6,4)
>>> sorted(x)
[1, 2, 3, 4, 6]
>>> x
(1, 3, 2, 6, 4)
위의 예제를 보면, 정렬된 값이 리턴되어 나왔지만, 기존의 데이터는 변하지 않았음을 알 수 있다.
sort()
sort() 함수는 리스트 객체 그 자체를 정렬만 할 뿐 정렬된 결과를 리턴하지는 않는다.
그렇다면, sorted와 sort함수의 가장 큰 차이점은 무엇일까. 아래 예제를 통해 알아보자.
>>> a = [6,3,7,4,1,3]
# sorted 사용시 정렬된 값을 리턴할 뿐, 본래의 데이터는 유지.
>>> sorted(a)
[1, 3, 3, 4, 6, 7]
>>> a
[6, 3, 7, 4, 1, 3]
# sort 사용시 본래의 객체를 정렬해서 바꿈.
>>> a.sort()
>>> a
[1, 3, 3, 4, 6, 7]
# sort는 리턴값이 없기 때문에, result에 저장되는 값이 없음.
>>> result = a.sort()
>>> print(result)
None
# 본래의 값을 변형하기 때문에, list에서 사용가능.
>>> a = 'star'
>>> a.sort()
AttributeError: 'str' object has no attribute 'sort'
# sorted 함수와 마찬가지로 옵션을 추가가능.
>>> x.sort(key=abs, reverse =True)
>>> x
[6, 5, 4, 3, -3, 2, -2, 1]
sorted 함수는 정렬시켜서 리턴값을 새로 만든다.(iterable한 자료형 모두 가능)
sort 함수는 객체 자체를 정렬시키고 리턴값을 만들지 않는다.(그래서 리스트에서 사용가능)
반응형
'컴퓨터 언어 > Python' 카테고리의 다른 글
[python 3] 미니콘다(miniconda)설치 후 환경변수 설정하기. (0) | 2020.03.27 |
---|---|
[ Python 3 ] Enumerate 함수란. (다양한 자료형 적용 예시) (0) | 2020.03.13 |
[Python 3] iterator 란 무엇인가. (0) | 2020.03.10 |
[Python 3] iterable 란 무엇인가. filter(), map(), zip(), sorted (0) | 2020.03.10 |
[Python 3] random 모듈 (random, uniform , randint , randrange , choice , sample , shuffle) (0) | 2020.03.10 |