python 내장 순차 자료형 함수 enumerate, sorted

Haein Kim·2021년 9월 19일
0

TIL

목록 보기
10/14

enumerate

In [19]: some_list = ['foo', 'bar', 'baz']

In [20]: mapping = {}

In [21]: for i, v in enumerate(some_list):
    ...:     mapping[v] = i
    ...: 

In [22]: mapping
Out[22]: {'foo': 0, 'bar': 1, 'baz': 2}
  • enumerate는 아이템의 색인을 함께 처리하고자 할 때 흔히 사용한다.

sorted

In [23]: sorted([7,1,2,6,0,3,2])
Out[23]: [0, 1, 2, 2, 3, 6, 7]

In [24]: sorted('horse race')
Out[24]: [' ', 'a', 'c', 'e', 'e', 'h', 'o', 'r', 'r', 's']
  • sorted 함수는 리스트의 sort 메서드와 같은 인자를 취한다.

zip

In [27]: zipped = zip(seq1, seq2)

In [28]: list(zipped)
Out[28]: [('foo', 'one'), ('bar', 'two'), ('baz', 'three')]

In [29]: zipped
Out[29]: <zip at 0x7f8db25fd980>

In [30]: seq3 = [False, True]

In [31]: list(zip(seq1,seq2,seq3))
Out[31]: [('foo', 'one', False), ('bar', 'two', True)]
  • 여러 개의 리스트나 튜플 또는 다른 순차 자료형을 서로 짝지어서 튜플의 리스트를 생성한다.
  • 반환되는 리스트의 크기는 넘겨받은 순차자료형 중 가장 짧은 크기로 정해진다.
In [32]: for i, (a,b) in enumerate(zip(seq1, seq2)):
    ...:     print('{0}: {1}, {2}'.format(i,a,b))
    ...: 
0: foo, one
1: bar, two
2: baz, three
  • 흔한 사용 예는 여러 개의 순차 자료형을 동시에 순회하는 경우인데, enumerate 과 함께 사용되기도 한다.
In [33]: pitchers = [('Noah', 'Ryan'), ('Roger', 'Clemens'), ('Schilling', 'Curt')]

In [34]: first_names, last_names = zip(*pitchers)

In [35]: first_names
Out[35]: ('Noah', 'Roger', 'Schilling')

In [36]: last_names
Out[36]: ('Ryan', 'Clemens', 'Curt')
  • 짝지어진 걸 다시 풀 수도 있다.
  • 그렇게 해서 리스트의 로우를 리스트의 컬럼으로 변환도 가능하다.

reversed

  • 제너레이터다!
  • 역순으로 순차 자료형을 순회한다.

참고: 파이썬 라이브러리를 활용한 데이터분석(2판)

profile
콘텐츠를 사랑하는 데이터 분석가

0개의 댓글