본문 바로가기

분류 전체보기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.