파이썬 API 둘러보기

range(), sorted(), reversed()

range(), sorted(), reversed()

range()

파이썬 2의 xrange()가 파이썬 3에서 range()로 통합되었다.

파이썬 3의 range(10**10)는 10**10 개 정수를 바로 만들지 않는다.

list(range(10**10)) 를 썼을 때 수열이 실제로 생성된다.

 

sorted(iterable) -> new list

이런 유형은 대개 이터레이터를 리턴하는데, sorted()는 (그게 안 되니까?) 새 리스트를 돌려준다.

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

>>> sorted('string')
['g', 'i', 'n', 'r', 's', 't']

>>> sorted([5,3,1], reverse=True)
[5, 3, 1]

>>> sorted([(5, 'a'), (3, 'b'), (1, 'c')], key=lambda x: x[0])
[(1, 'c'), (3, 'b'), (5, 'a')]

>>> sorted(['123', '456', '789'], key=int)
['123', '456', '789']

 

비교: list.sort()

>>> lst = [1,2,3]
>>> lst.sort()
>>> lst
[1, 2, 3]

 

reversed(sequence) -> reverse iterator

reversed(), filter(), map() 등은 새 객체를 만들지 않고 iterator를 리턴한다.

>>> reversed([1,2,3])
<list_reverseiterator object at 0x032BBE70>

>>> list(reversed([1,2,3]))
[3, 2, 1]

>>> reversed('abcd')
<reversed object at 0x032BB0F0>

>>> str(reversed('abcd'))
'<reversed object at 0x032BBC10>'

>>> ''.join((reversed('abcd')))
'dcba'

 

댓글

댓글 본문
작성자
비밀번호
버전 관리
장과장02
현재 버전
선택 버전
graphittie 자세히 보기