본문 바로가기

Python59

[파이썬/Python] Iterable과 Iterator에 대한 명쾌한 정리 Iterable과 Iterator의 정의 Iterable 객체의 정의와 확인하는 방법 Iterable은 내부에 __iter__ 메서드가 있는 모든 객체이며, 순회할 수 있는 객체이고 재사용이 가능합니다. Iterable에는 list, 문자열, dictionary, tuple, set과 같은 자료 유형이 이에 해당합니다. 객체가 Iterable인지 확인하는 방법은 아래 코드를 참고해 주세요. from typing import Iterable print(isinstance([1,2,3], Iterable)) # True print(isinstance('abcd', Iterable)) # True print(isinstance({1:'cal', 2:'jun'}, Iterable)) # True print(is.. 2023. 7. 6.
[파이썬/Python] 얕은 복사(Shallow copy)와 깊은 복사(deep copy)에 대한 완벽 정리 얕은 복사와 깊은 복사에 대한 정의 mutable 객체, 그것이 문제로다. 파이썬에서는 immutable 객체와 mutable 객체가 있습니다. immutable 객체는 값을 바꿀 수 없는 객체입니다. 값이 바뀌면 다른 메모리 공간을 할당하여 주소값도 바꿔줘야 합니다. 반면, mutable 객체는 주소값이 동일하더라도 그 안의 값을 바꿀 수 있는 객체입니다. 파이썬에서 흔히 사용되는 int, str, float, boolean, tuple의 자료 유형이 immutable 객체에 포함됩니다. 반면 list, dict, set은 mutable 객체에 포함됩니다. 이 개념에 대해 잘 모르신 분들은 이전 글을 꼭 읽어봐 주세요. 얕은 복사와 깊은 복사는 mutable 객체를 복사할 때만 신경 써주시면 됩니다. .. 2023. 7. 5.
[파이썬/Python] immutable과 mutable 객체 immutable과 mutable 객체, 왜 알아야 하나요? 코딩을 공부하시다 보면, 깊은 복사와 얕은 복사에 대한 개념을 종종 접할 때가 있습니다. 이 개념에 대해 모르고 사용하시는 분들도 많으신데요. 평소에는 크게 문제가 되지 않지만, 간혹 얕은 복사가 필요할 때 깊은 복사를 하거나 그 거꾸로인 경우로 인해 코드의 결과값이 달라지는 경우가 생깁니다. 별다른 에러 메시지가 나오지 않기 때문에, 이 개념을 모르신다면 관련 에러를 디버깅하는데 어려움을 겪을 수 있습니다. 물론 파이썬을 공부하는 입장에서는 당연히 기초를 튼튼히 한다는 생각으로 공부하시면 좋을 것 같습니다. 얕은 복사와 깊은 복사에 대해서는 다음 시간에 상세하게 설명드리겠습니다. 이번 시간에는 근간이 되는 immutable, mutable 객.. 2023. 7. 4.