STUDY/Python
zip(), copy(), deepcopy()
채소보끔
2023. 3. 29. 10:13
728x90
1. zip()
- 여러개의 순회 가능한(iterable) 객체를 인자로 받음
- 각 객체가 갖고 있는 요소를 튜플 형태로 반복자(iterator)를 반환함
- 두 객체의 각 인덱스를 묶음
A_list = [0, 1, 2]
B_list = ['A', 'B', 'C']
for A_B in zip(A_list, B_list):
print(A_B)
2. copy()
- 1차원 시퀀스 복사
a = [1,2,3]
b = a.copy()
print(a)
print(b)
b[0] = 4
print(a)
print(b)
수정도 자유자재로 가능하다
- 2차원 이상의 리스트, 배열에서는 문제 발생함
a = [[1,2,3],[4,5,6]]
b = a.copy()
print(a)
print(b)
b[0][0] = 7
print(a)
print(b)
수정하면 복사본이 아닌 내용도 같이 수정되는 문제가 발생함
3. deepcopy()
- 단순 복제가 아닌 별개의 복제 버전을 생성해줌
- 원본이 영향을 안받음
import copy
a = [[1,2,3],[4,5,6]]
b = copy.deepcopy(a)
print(a)
print(b)
b[0][0] = 7
print(a)
print(b)
copy()함수와 달리 수정 본만 변경되었다
728x90