[Python] Deep copy & shallow copy
Deep copy & shallow copy mutable container인 list, set, dictionary 를 immutable 한 클래스를 만들기 위한 방법 Shallow copy b = a a와 b가 동일한 메모리 주소를 가짐 내부의 객체 또한 동일한 메모리 주소 # shallow copy a = [0, 1, [10, 20]] **b = a # 첫 번째 방법** b[0] = 'hello' b[-1][0] *= -1 print(a, b) # a = ['hello', 1, [-10, 20]], b = ['hello', 1, [-10, 20]] print(id(a), id(b)) # 동일한 아이디 값 print(id(a[2]), id(b[2])) # 내부의 리스트를 아이디 값이 같다 b = a[..
2023. 4. 11.
[Python] Dictionary
Dictionary key와 value 값을 가지는 자료형 {key1: value1, key2: value2, key3: value3, …} 특징 value 값은 key 에 의해 인덱싱된다. 순서가 존재하지 않는다. 기본 형태 d = {'a': 1, 'b': 2, 'c': 3} # value 값 접근 d['a'] # 1 # value 값 수정 d['a'] = 10 # {'a': 10, 'b': 2, 'c': 3} # 원소 추가 d['d'] = 4 # {'a': 10, 'b': 2, 'c': 3, 'd': 4} # 원소 삭제 del d['b'] # {'a': 10, 'c': 3, 'd': 4} # key 값만 탐색 list(d.keys()) # ['a', 'c', 'd'] list{d.values()) #..
2023. 4. 11.
[Python] Set
집합과 관련된 것을 쉽게 처리하기 위해 만든 자료형 set의 특징 중복을 허용하지 않는다 순서가 존재하지 않는다 ⇒ 인덱스로 원소 값에 접근할 수 없다. set 생성 # set 키워드 이용 s1 = set([1, 2, 3]) # {1, 2, 3} s2 = set("Hello") # {'e', 'H', 'l', 'o'} set 연산 집합 연산 a = set([0, 1, 2]) b = set([1, 2, 3, 4]) # union (합집합) print(a | b) # {0, 1, 2, 3, 4} print(a.union(b)) # {0, 1, 2, 3, 4} a |= b # a = {0, 1, 2, 3, 4} # intersection (교집합) print(a & b) # {1, 2} print(a.inte..
2023. 4. 11.