파이썬 리스트 요소 삭제 질문입니다.
조회수 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)
추가하여 해결했습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력