반응형
순서가 있는 자료형(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 클래스)
예제 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]]
반응형
'컴퓨터 언어 > Python' 카테고리의 다른 글
[python 3] 주피터 노트북 (Jupyter notebook) 설치하기. (0) | 2020.03.27 |
---|---|
[python 3] 미니콘다(miniconda)설치 후 환경변수 설정하기. (0) | 2020.03.27 |
[Python 3] iterator 란 무엇인가. (0) | 2020.03.10 |
[Python 3] iterable 란 무엇인가. filter(), map(), zip(), sorted (0) | 2020.03.10 |
[Python 3] Range , sorted , sort 란 무엇인가. (0) | 2020.03.10 |