본문 바로가기

STUDY/Python

zip(), copy(), deepcopy()

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

'STUDY > Python' 카테고리의 다른 글

파이썬 두 개 리스트 간 중복 요소  (0) 2023.04.03
[Softeer] 전광판 (딕셔너리 공부)  (0) 2023.04.03
[Softeer] A+B  (0) 2023.03.28
[Softeer] 근무 시간  (0) 2023.03.28
[Softeer] 주행거리 비교하기  (0) 2023.03.27