파이썬 리스트 복사 질문(copy 모듈, 슬라이스)

조회수 619회
import copy

a = ["Aa","Bb", "Cc"]
b = ["11", "22", "33"]
c = []

a.extend(b)
c.append(a)
c.append(a)

print("1", c)     #결과 (1 [['Aa', 'Bb', 'Cc', '11', '22', '33'], ['Aa', 'Bb', 'Cc', '11', '22', '33']])

c = c[:]

del a[3:]

print("2", c)    #결과 (2 [['Aa', 'Bb', 'Cc'], ['Aa', 'Bb', 'Cc']])

del a[3:] 이후에도 ['Aa', 'Bb', 'Cc', '11', '22', '33'], ['Aa', 'Bb', 'Cc', '11', '22', '33']가 출력되게 하고 싶은데 여전히 a[ ] 의 요소들이 참조되어 다음 값에 반영이 됩니다...

c = copy.deepcopy(c) 를 반복해서 사용할 경우 maximum recursion depth exceeded in comparison 라는 오류메세지가 나옵니다.

아래 코드를 추가하여 실행해도, 처리 속도에도 차이가 있는것 같아 c = c[ : ] 형태로 복사하고 싶습니다. 방법이 있는지요.

import sys
 __name__=='__main__':
    sys.setrecursionlimit(2000)

출처: https://tmdahr1245.tistory.com/97 [tmdahr1245]

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • maximum recursion depth exceeded 이런 메세지를 받는다면 잘못된 구조를 가졌을 가능성이 큽니다. 오류 재현이 가능한 샘플을 올려보시기 바랍니다. 정영훈 2020.1.22 13:22

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)