파이썬 리스트 요소 삭제 질문입니다.

조회수 457회
a = ["Aa","Bb", "Cc"]
b = ["11", "22", "33"]
c = []

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

print("1", c)

del a[3:]

print("2", c)

위와 같은 코드에서 del 함수 사용 후 리스트 요소['Aa', 'Bb', 'Cc', '11', '22', '33'], ['Aa', 'Bb', 'Cc', '11', '22', '33'] 중에서 11, 22, 33이 삭제되고

c리스트에는 변동이 없어야 되는게 맞다고 생각되는데, 왜 ['Aa', 'Bb', 'Cc'], ['Aa', 'Bb', 'Cc']으로 출력되는지 궁금합니다.

위 코드에서 어쩔 수 없이 발생되는 경우라고 할때에는

del... 함수 이후['Aa', 'Bb', 'Cc', '11', '22', '33'], ['Aa', 'Bb', 'Cc', '11', '22', '33'] 으로 출력하는 방법이 있는지 궁금합니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 또 자문 자답입니다...

    리스트가 참조되어 원본 요소가 변경되면 바로 반영이 되는거였네요..

    import copy

    ...

    c = copy.deepcopy(c)

    추가하여 해결했습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

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

(ಠ_ಠ)
(ಠ‿ಠ)