PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2018/04/17 22:31:34
Name Patrick Jane
Subject [질문] 파이썬 리스트 질문입니다.
안녕하세요. 파이썬으로 코드 작성중에 이상한 부분이 있어서 질문드립니다.
제가 현재 만든 리스트는 다음과 같습니다.

vir_map=[[int(x) for x in input().split()] for _ in range(n)]
이렇게 넣어서 모양은 대충 [[1,2,3],[3,4.5]] 이런식으로 되어있습니다.

리스트를 잠깐 복사해서 특정부분을 변경해서 값을비교하고, 다시 원래 vir_map를 복사해서 b를 변경해보고 하는 로직을 만들었습니다.
그런데 복사를 해보니 복사한 리스트에서 변경을 가하면 원본리스트에도 변경이되더라구요..

그래서 구글검색결과 temp_map=vir_map[:] 또는 temp_map=copy.copy(vir_map) 또는 temp_map=list(vir_map)를 사용하라고 하더라구요;
그래서 세가지를 다 적용해봐도 그대로 복사한 리스트를 변경하면 원본리스트가 변경됩니다.

어떻게해야 value만 복사해올 수 있을까요? 파이썬 고수님들 도와주세요!

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
테트리스
18/04/17 22:37
수정 아이콘
얕은 복사가 이뤄져서 그런것 같네요! copy 모듈 활용하셔서 깊은 복사하시면 될것 같아요!
Patrick Jane
18/04/17 22:39
수정 아이콘
copy.copy(vir_map)을 해도 똑같습니다 ㅠㅠ엉엉
테트리스
18/04/17 22:40
수정 아이콘
copy.deepcopy(vir_map)으로 해보셨나요?
Patrick Jane
18/04/17 22:43
수정 아이콘
deepcopy를 하니까 정상적으로 되네요 ㅠㅠ 감사합니다. 해당 모듈좀 찾아봐야겠네요. python3 에서는 해당모듈말고는 value만 복사해오는 방법은 따로없나요?
Phlying Dolphin
18/04/17 23:11
수정 아이콘
해 보진 않았지만... 직접 construct하는 방법도 있겠죠.
vir_map1=[[int(x) for x in input().split()] for _ in range(n)]
vir_map2=[[int(x) for x in input().split()] for _ in range(n)]

또는
vir_map2=[[x for x in submap] for submap in vir_map] 식으로...

무작위 깊이로 복사한다면, yield 구문을 활용하면 될 겁니다. 예전에 dictionary update 모듈 만들 때 비슷한 방법을 사용했어요. 아마 deepcopy도 뜯어 보면 비슷한 알고리즘일 것 같습니다.
Patrick Jane
18/04/17 23:18
수정 아이콘
저런 방법도 있군요 ㅠㅠ 문법책좀 더 들여다봐야할거 같아요 ㅠ 감사합니다!
포포탄
18/04/17 22:43
수정 아이콘
파이썬의 딕셔너리와 리스트는 참조형식으로 값을 복사합니다.(주소복사)
copy.deepcopy(things) 형식으로 복사하셔야 합니다.
Patrick Jane
18/04/17 22:49
수정 아이콘
감사합니다!!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
118789 [질문] 태블릿PC 추천부탁합니다 [3] 기희현2782 18/04/17 2782
118788 [질문] 연봉 협상 관련 인사과 분들의 조언이 필요합니다. [17] 시즈플레어4736 18/04/17 4736
118787 [질문] [lol] 탑 케일 질문입니다 [5] 치토스2357 18/04/17 2357
118786 [질문] 3월 24일 무도에 들어간 이 BGM 아시는 분? [2] 티티1787 18/04/17 1787
118785 [질문] sm3 진흙탕에 한번 밝고 지나갔는데 괜찮나요? [4] 삭제됨2265 18/04/17 2265
118784 [질문] 카디프 스케이트 써보신분 계신가요? 아기상어1855 18/04/17 1855
118783 [질문] 파이썬 리스트 질문입니다. [8] Patrick Jane2153 18/04/17 2153
118782 [질문] 와이파이 공유기 질문입니다. [5] 교자만두2578 18/04/17 2578
118781 [질문] 헬스하고 햄버거 먹어도되나요?? [50] 현직백수18961 18/04/17 18961
118780 [질문] 국내에서 럼레이즌 아이스크림 먹을 수 있는 곳 없나요? [2] 강미나3662 18/04/17 3662
118779 [질문] 중고차 구매 질문입니다. [11] 마제스티2461 18/04/17 2461
118778 [질문] 소개팅 신도림vs영등포 어디가 좋을까요??? [21] 삭제됨9392 18/04/17 9392
118777 [질문] 군산 소개팅(맞선?) 장소 추천 부탁드립니다 [8] 금주망태3652 18/04/17 3652
118776 [질문] 레알 마드리드, 바이에른 뮌헨 테마 술집(펍) 유명한 곳 있나요? 트와이스정연2162 18/04/17 2162
118775 [질문] 생초짜 토탈워 입문자에게 햄탈워2 괜찮은가요? [19] SooKyumStork11331 18/04/17 11331
118774 [질문] 조립컴을 샀는데 모니터가 안되요... [10] 사는게젤힘드러2704 18/04/17 2704
118773 [질문] ps4 pro를 사려면 어디로 가야하나요? [8] Ahri3901 18/04/17 3901
118772 [질문] 모아놓은 돈이 없는데 특별공급 청약에 당첨되어 버렸습니다. [8] 그냥가끔6595 18/04/17 6595
118771 [질문] 강원도 낚시초보들이 즐길만한곳 있나요...? 바둑아위험해1496 18/04/17 1496
118770 [질문] 갑자기 어머니(60세)께서 어지럽고 물체가 두 개로 보인다는데 어느 병원을 가야하나요? [14] 삭제됨2997 18/04/17 2997
118769 [질문] 만화로 보는 삼국지 책 추천해주세요~ [7] 긍까4528 18/04/17 4528
118768 [질문] PS4 pro DVD 재생 질문 [7] LeNTE5057 18/04/17 5057
118767 [질문] 번역서를 내 보신 분들께 문의드립니다. [8] 상계동 신선2052 18/04/17 2052
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로