728x90
파이썬 표준 라이브러리는 C로 구현된 시퀀스를 제공한다
1) 자료형에 따른 분류
컨테이너 시퀀스(Container Sequence): 객체에 대한 참조. 서로 다른 자료형의 항목을 담을 수 있음. list, tuple, collections.deque
규일 시퀀스(Flat Sequence): 자신의 메모리 공간에 각 항목의 값. 단 하나의 자료형만 담을 수 있음. str, bytes, bytearray, memoryview, array.array
2) 가변성에 따른 불류
가변 시퀀스 : list, bytearray, array.array, collections.deque, memoryview
불변 시퀀스 : tuple, str, bytes
지능형 리스트(list comprehension)
colors = ['black', 'white']
sizes = ['S', 'M', 'L']
# 지능형 리스트
tshirts = [(color, size) for color in colors for size in sizes]
# 이중리스트
tshirts = list()
for color in colors:
for size in sizes:
tshirts.append((color, size))
제너레이터(generator)
for tshirts in ('%s %s' %(c, s) for c in colors for s in sizes):
print(tshirts)
namedtuple
필드명이 클래스에 저장되므로 namedtuple()로 생성한 객체는 튜플과 동일한 크기의 메모리만 사용한다. 속성을 객체마다 존재하는 __dict__에 저장하지 않으므로 일반적인 객체보다 메모리를 적게 사용한다
728x90
'공부하는삶 > Python' 카테고리의 다른 글
Python numpy, tensorflow, pytorch array (0) | 2023.08.29 |
---|---|
Python (Avoiding) Flow Control (0) | 2023.08.29 |
Python Composite pattern(composition), Descriptor, Meta class (0) | 2023.08.29 |
Magic Method (0) | 2020.05.09 |
Gaussian Filter vs Bilateral Filter (0) | 2020.04.02 |
Python Multiprocessing module(파이썬 멀티프로세싱 모듈) (0) | 2019.11.28 |