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
수정 아이콘
감사합니다!!
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
118799 [질문] 헤어지거나 차이거나 했을때의 감정이 무었일까요? [15] EY3569 18/04/18 3569
118798 [질문] 퇴직금을 어떻게 운영해야 할까요? [2] 혜정은준아빠2776 18/04/18 2776
118796 [질문] 제 생각이 이기적인 생각인지 알고 싶습니다. [37] 우메보시4823 18/04/18 4823
118794 [질문] 휴대폰 액정 상단바 아래 색깔이 변하는 거 갤럭시만 이러나요? [18] FRONTIER SETTER8060 18/04/18 8060
118793 [질문] 대장내시경 걱정이 많습니다.. [14] 자몽2998 18/04/18 2998
118792 [질문] 신혼여행 추천 부탁드립니다! [42] 골든해피4420 18/04/18 4420
118791 [질문] Asl 이번 시즌 맵 토스 괜찮지 않나요? [17] 성동구3094 18/04/18 3094
118790 [질문] [lol]팀운을 객관적으로 알수있는 방법이 있나요? [23] 주전자9503 18/04/18 9503
118789 [질문] 태블릿PC 추천부탁합니다 [3] 기희현2790 18/04/17 2790
118788 [질문] 연봉 협상 관련 인사과 분들의 조언이 필요합니다. [17] 시즈플레어4741 18/04/17 4741
118787 [질문] [lol] 탑 케일 질문입니다 [5] 치토스2362 18/04/17 2362
118786 [질문] 3월 24일 무도에 들어간 이 BGM 아시는 분? [2] 티티1789 18/04/17 1789
118785 [질문] sm3 진흙탕에 한번 밝고 지나갔는데 괜찮나요? [4] 삭제됨2268 18/04/17 2268
118784 [질문] 카디프 스케이트 써보신분 계신가요? 아기상어1859 18/04/17 1859
118783 [질문] 파이썬 리스트 질문입니다. [8] Patrick Jane2157 18/04/17 2157
118782 [질문] 와이파이 공유기 질문입니다. [5] 교자만두2583 18/04/17 2583
118781 [질문] 헬스하고 햄버거 먹어도되나요?? [50] 현직백수18987 18/04/17 18987
118780 [질문] 국내에서 럼레이즌 아이스크림 먹을 수 있는 곳 없나요? [2] 강미나3671 18/04/17 3671
118779 [질문] 중고차 구매 질문입니다. [11] 마제스티2464 18/04/17 2464
118778 [질문] 소개팅 신도림vs영등포 어디가 좋을까요??? [21] 삭제됨9405 18/04/17 9405
118777 [질문] 군산 소개팅(맞선?) 장소 추천 부탁드립니다 [8] 금주망태3662 18/04/17 3662
118776 [질문] 레알 마드리드, 바이에른 뮌헨 테마 술집(펍) 유명한 곳 있나요? 트와이스정연2166 18/04/17 2166
118775 [질문] 생초짜 토탈워 입문자에게 햄탈워2 괜찮은가요? [19] SooKyumStork11341 18/04/17 11341
목록 이전 다음
댓글

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