일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- tensorflow
- 하이브
- hadoop2
- 선형대수
- Java
- C
- recursion
- 하둡2
- collections
- codingthematrix
- 그래프이론
- HelloWorld
- scrapy
- GRU
- Sort
- 파이썬
- 주식분석
- python
- graph
- 딥러닝
- LSTM
- yarn
- 알고리즘
- RNN
- NumPy
- 텐서플로
- C언어
- effective python
- hive
- 코딩더매트릭스
- Today
- Total
EXCELSIOR
collections 모듈 - namedtuple 본문
collections.namedtuple()
1. namedtuple이란
명칭 그대로 field_names
)를 가지고 값에 접근이 가능하다는 부분이 딕셔너리(dict)타입과 비슷하다고 할 수 있다. namedtuple()
에 대한 자세한 내용은 docs.python.org에서 확인할 수 있다.
namedtupled()
은 collections.namedtuple(typename, field_names, verbose=False, rename=False)을 입력값으로 받으며, field_names 를 통해 namedtuple()
의 키 즉, 필드명(fieldname)을 정의할 수 있다. 필드명을 정의할 때에는 필드사이에 빈칸(whitespace)이나 ,
로 구분해준다. 예를들어 필드명 'x y'
나 'x, y'
와 같이 입력해야한다. 다른방법으로는 ['x', 'y']
와 같이 리스트(list)형식으로 필드명을 지정해줄 수 있다. 아래의 [예제1]은 namedtuple()
의 기본 예시와 basic tuple
과의 차이를 나타낸 예시이다. [예제1]에서 볼 수 있듯이 기본 투플은 투플안의 값이 어떠한 속성을 가지는지 알 수 없지만 *namedtuple()*은 field_names
를 이용해 값을 지정할 수 있다. 또한 namedtuple()
은 field_name 으로 투플 안의 값에 접근 가능하다. namedtuple()
은 csv나 DB에서 테이블을 가져올때 유용하게 사용할 수 있다. 예를들어 EmployeeRecord테이블을 가져온다고 할때, EmployeeRecord = namedtuple('EmployeeRecord', 'name, age, title, department, paygrade')
과 같이 정의하여 사용할 수 있다. 자세한 예시는 docs.python.org에서 확인할 수 있다.
2. collections.namedtuple()의 메소드들
1) _make(iterable)
collections.namedtuple()
의 _make()
함수는 기존에 생성된 namedtuple()에 새로운 인스턴스(객체)를 생성하는 메소드이다.
2) _asdict()
기존에 생성된 namedtuple()의 인스턴스(객체)를 OrderedDict
로 변환해 주는 함수이다.
3) _replace(kwargs)
기존에 생성된 namedtuple()의 인스턴스(객체)의 값을 변경할때 사용하는 함수이다.
4) _fields
생성된 namedtuple()의 필드명(field_names)를 tuple()형식으로 return해준다.
5) getattr()
getattr()
는 collections.namedtuple()의 메소드는 아니지만, field_names
로 namedtuple()의 인스턴스(객체)의 값을 추출해준다.
6) dictionary 에서 namedtuple()로 변환(**dict
)
double-star-operator(**
)는 딕셔너리(dict)를 namedtuple()로 변환해준다.
'Python > 자료구조' 카테고리의 다른 글
내장함수 zip() 과 itertools.zip_longest() 함수 (0) | 2017.09.21 |
---|---|
collections 모듈 - OrderedDict (0) | 2017.09.07 |
collections 모듈 - deque (3) | 2017.08.20 |
collections 모듈 - defaultdict (0) | 2017.08.18 |
collections 모듈 - Counter (7) | 2017.08.17 |