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

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