본문 바로가기

전체 글165

[파이썬/Python] Iterable과 Iterator 객체를 만들어 보자. Iterable, Iterator 객체 구현을 위한 개념 정리 이전 시간에는 Iterable, Iterator 객체에 대해 살펴봤습니다. 두 객체를 만들기 위해 필요한 개념을 다시 한번 정리해 보겠습니다. Iterable 객체 1. 내부에 __iter__ 메서드가 있어야 한다. 2. __iter__ 메서드는 Iterator를 반환한다. 3. 순회할 수 있도록 시작과 마지막에 대한 정보가 있어야 한다. (이해를 위해 추가) Iterator 객체 1. Iterable 객체의 __iter__ 메서드를 통해 생성된다. 2. 내부에 __next__ 메서드가 있다. 3. __next__ 메서드를 통해 다음 값을 호출한다. 4. 순회를 위해 시작값과 마지막에 대한 정보가 있어야 한다. (이해를 위해 추가) 5. 현재.. 2023. 7. 6.
[파이썬/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.
[파이썬/Python] 정수(Integer) 2탄: 메모리 할당 이전 시간에는 파이썬에서 정수형의 정의와 무제한의 크기를 가질 수 있는 이유, 임의 정밀도에 대해 공부했습니다. 관련 내용이 궁금하시다면 아래 게시글 참고 부탁드립니다. [파이썬/Python] 정수(Integer) 1탄: 임의 정밀도에 대하여 [파이썬/Python] 정수(Integer) 1탄: 임의 정밀도 정수(Integer)의 정의와 임의 정밀도 파이썬에는 여러 데이터 유형(Type)이 있습니다. 그중, 정수(Integer) 형이란 소수점이 없는 0, 음수, 양수를 의미합니다. 파이썬은 객체 지향 언어이므로, 모든 개 kevinitcoding.tistory.com 이번 시간에는 정수형만의 독특한 메모리 할당 구조에 대해 알아보도록 하겠습니다. 활용 빈도가 높은 정수의 메모리 할당 파이썬에서는 파일이 실.. 2023. 7. 4.
[파이썬/Python] 정수(Integer) 1탄: 임의 정밀도 정수(Integer)의 정의와 임의 정밀도 파이썬에는 여러 데이터 유형(Type)이 있습니다. 그중, 정수(Integer) 형이란 소수점이 없는 0, 음수, 양수를 의미합니다. 파이썬은 객체 지향 언어이므로, 모든 개념을 객체로서 구현합니다. 따라서 파이썬에서 정수도 int라는 객체이자 class입니다. a = 5 print(type(a)) # 파이썬에서 정수는 C언어와 같은 고급 프로그래밍 언어와 다른 점이 있습니다. 그건 바로 크기의 제한입니다. 파이썬에서 정수는 크기의 제한이 없습니다. 메모리 공간이 허용하는 한도까지의 정수를 표현할 수 있습니다. 이게 무슨 말이냐, C언어와 비교하여 설명드리겠습니다. C언어에서 int형은 [-2,147,483,648, 2,147,483,648] 사이의 정수를 표현.. 2023. 7. 3.