분류 전체보기

얕은 복사(shallow copy) / 깊은 복사(deep copy)

shallow copy 값이 할당되는 것이 아니라 같은 메모리 주소를 바라봄 - list a = [1, 2, 3] b = a # shallow copy b[0] = 7 print(a) #[7, 2, 3) 아래와 같이 슬라이싱을 통해 할당하면 새로운 id가 부여됨 id(a)와 id(b)는 다르지만 내부 객체 id(a[0])과 id(b[0])은 같은 주소를 바라봄 a = [[1, 2], [3, 4]] b = a[:] 그렇기 때문에 재할당하는 경우에는 문제가 생기지 않지만, a[1] 값을 변경하면 b[1] 값도 따라서 변경됨 a[0] = [8, 9] print(b) # [[1, 2], [3, 4]] a[1].append(4) print(b) #[[1, 2], [3, 4, 4]] *copy 모듈의 copy 메서..

programming/python 2023.08.06

우선순위 큐 - PriorityQueue, heapq

PriorityQueue 우선순위 큐는 데이터를 추가한 순서와 상관없이 데이터를 꺼낼 때 오름차순으로 반환함 from queue import PriorityQueue queue = PriorityQueue() queue = PriorityQueue(maxsize = 10) # 사이즈 제한 # 원소 추가 queue.put(data) # 원소 제거 queue.get() # 크기 확인 queue.qsize() # 비어있는지 확인 queue.empty() # True or False # 가득찼는지 확인 queue.full() # True or False heapq 리스트를 최소 힙으로 사용하여 리스트의 첫 번째 요소가 항상 최소값을 가지도록 유지된다. 이진트리 기반 최소 힙을 제공하여 우선순위 큐를 간단하게 구..

programming/python 2023.08.03

python redis

- redis에서 데이터 가져오기 및 설정 import redis r = redis.Redis() - set() key - value 설정 ex) r.set("bike:1", "process 134") - get(name) 키 값을 반환, 존재하지 않으면 None을 반환 ex) r.get("bike:1") # process 134 - setnx(name, value) 키 값이 존재하지 않을 경우 value 값으로 저장 - 1 반환 키 값이 존재하는 경우 - 0 반환 SET if Not eXists - setex(name, time, value) key - value 값을 설정하고, 지정된 시간 후에 만료되도록 설정 - expire(name, time, nx=False, xx=False, gt=False,..

programming/python 2023.07.24