본문 바로가기
컴퓨터 언어/Python

[ Python 3 ] Enumerate 함수란. (다양한 자료형 적용 예시)

by SuperMemi 2020. 3. 13.
반응형

순서가 있는 자료형(list, tuple, string)을 입력으로 받아

인덱스 값을 포함하는 enumerate 객체를 리턴한다.

 

Tip. for문과 함께 자주 사용된다.

 


Enumerate 알아보기

 

1. seq 자료형 enumerate 결과 확인하기.

2. 순서가 없는 자료형은 어떤 결과가 도출될까??

       -  dictionary, set 자료형 enumerate 결과 확인하기.

3. 다차원 리스트와 ndarray에서는 어떤 결과가 나올까?

       -  리스트와 numpy.ndarray의 enumerate함수 결과는 비슷하게 도출한다.


 

numpy.ndarray를 잘 모르겠다면 아래의 글을 보고 오길 바란다.

2020/03/14 - [Python] - [ Python 3 ] NumPy란 무엇인가? (ndarray 클래스)

 

[ Python 3 ] NumPy란 무엇인가? (ndarray 클래스)

NumPy 소개 Numpy(보통 "넘파이"라고 발음)는 수치 해석용 Python 패키지이다. 다차원의 행렬 자료구조인 ndarray를 지원하여 벡터와 행렬을 사용하는 선형대수 계산에 주로 사용된다. C로 구현된 CPython에서만..

supermemi.tistory.com


예제 1. seq 자료형(tuple, string, list) enumerate 결과.

>>> data = enumerate((1,2,3))      
>>> print(data, type(data))                 # enumerate 객체를 반환한다.
<enumerate object at 0x0000020FCF4161D8> <class 'enumerate'>


>>> data = enumerate((1,2,3))               # 자료형 : tuple
>>> for i, value in data:
...     print("index : {}, value : {}".format(i, value))
...
index : 0, value : 1
index : 1, value : 2
index : 2, value : 3

>>> data = enumerate("ML은 재밌어!")         # 자료형 : str
>>> for i, value in data:
...      print("index : {}, value : {}".format(i, value))
...
index : 0, value : M
index : 1, value : L
index : 2, value : 은
index : 3, value :
index : 4, value : 재
index : 5, value : 밌
index : 6, value : 어
index : 7, value : !

>>> list_data = [1,2,3]                      # 자료형 : 리스트.
>>> data = enumerate(list_data)
>>> for i, value in data:
...      print("index : {}, value : {}".format(i, value))
...
index : 0, value : 1
index : 1, value : 2
index : 2, value : 3

예제 2. 순서가 없는 자료형 enumerate 결과 확인하기.

>>> dic1 = {'나이': 24 ,'학교': 'cau'}                     # 자료형 : dict
>>> data = enumerate(dic1)                                # dictionary는 순서가 없는대신, key값을 통해 value를 얻는다.
>>> for i, value in data:
...      print("index : {}, value : {}".format(i, value))
...
index : 0, value : 나이
index : 1, value : 학교

>>> data = enumerate({1, 2, 3, 3})                        # 자료형 : set
>>> for i, value in data:                                 # set은 중복을 허용하지 않고, 순서가없다.
...      print("index : {}, value : {}".format(i, value))
...
index : 0, value : 1
index : 1, value : 2
index : 2, value : 3

예제 3. 다차원 리스트와 ndarray에서는 어떤 결과가 나올까?

### list 형태 ###

>>> list_data = [[1,2,3],[4,5,6]]                              # 2차원 (2, 3) 리스트.
>>> np.shape(list_data)
(2, 3)
>>> data = enumerate(list_data)
>>> for i, value in data:
...      print("index : {}, value : {}".format(i, value))
...
index : 0, value : [1, 2, 3]                                   # index : 2차원의 순서
index : 1, value : [4, 5, 6]                                   # value : 1차원 값


>>> list_data = [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]       # 3차원 (2, 2, 3) 리스트.
>>> np.shape(list_data)
(2, 2, 3)
>>> data = enumerate(list_data)
>>> for i, value in data:
...      print("index : {}, value : {}".format(i, value))
...
index : 0, value : [[1, 2, 3], [4, 5, 6]]                      # index : 3차원의 순서
index : 1, value : [[7, 8, 9], [10, 11, 12]]                   # value : 2차원 값 


### numpy.ndarray 형태 ###

>>> x = np.arange(12).reshape(2,2,3)                           # 3차원 (2, 2, 3) ndarray.
>>> x
array([[[ 0,  1,  2],
        [ 3,  4,  5]],

       [[ 6,  7,  8],
        [ 9, 10, 11]]])
>>> type(x)
<class 'numpy.ndarray'>
>>> data = enumerate(x)
>>> for i, value in data:
...      print("index : {}, value : {}".format(i, value))
...
index : 0, value : [[0 1 2]                                     # index : 3차원의 순서
 [3 4 5]]                                                       # value : 2차원 값  
index : 1, value : [[ 6  7  8]             # ndarray도 list와 비슷하게 결과 값을 나타내는 것을 알 수 있다.
 [ 9 10 11]]
반응형