본문 바로가기

파이썬(Python)29

deepcopy vs slicing 안녕하세요! 공대남입니다. 파이썬에서 깊은 복사를 할때에 크게 deepcopy와 slicing을 이용하는데 둘의 시간복잡도와 뭐가 더 유용한지 알아보겠습니다. # deepcopy 이용 # time : 6.350424289703369 from copy import deepcopy list_a = [[i for i in range(100)] for _ in range(100)] list_b = [] for _ in range(1000): list_b = deepcopy(list_a) # time : 0.049834251403808594 list_a = [[i for i in range(100)] for _ in range(100)] list_b = [] for _ in range(1000): list_b =.. 2023. 6. 19.
파이썬 얕은복사 안녕하세요! 공대남입니다. 얕은복사 깊은복사를 주의해 코딩을 해야합니다. karr = arr를 할 경우, karr과 arr은 동일한 메모리 주소를 참조하게 됩니다. 이는 얕은 복사(shallow copy)라고도 합니다. 따라서 karr을 변경하면 동일한 메모리 주소를 참조하는 arr도 함께 변경되는 결과를 가져옵니다. 예를 들어, 다음과 같은 코드를 실행한다고 가정해봅시다: python code arr = [1, 2, 3, 4, 5] karr = arr karr[0] = 100 print(arr) # 출력: [100, 2, 3, 4, 5] 여기서 karr = arr를 수행한 후 karr[0]을 변경하면 arr도 함께 변경되는 것을 확인할 수 있습니다. 이는 karr과 arr이 동일한 리스트 객체를 가리키.. 2023. 5. 27.
파이썬 함수 함수란 무엇인가? 함수를 설명하기 전에 믹서를 생각해 보자. 우리는 믹서에 과일을 넣는다. 그리고 믹서를 사용해서 과일을 갈아 과일 주스를 만든다. 우리가 믹서에 넣는 과일은 "입력"이 되고 과일 주스는 "출력(결괏값)"이 된다. 그렇다면 믹서는 무엇인가? (믹서는 과일을 입력받아 주스를 출력하는 함수와 같다.) 우리가 배우려는 함수가 바로 믹서와 비슷하다. 입력값을 가지고 어떤 일을 수행한 다음에 그 결과물을 내어놓는 것, 이것이 바로 함수가 하는 일이다. 우리는 어려서부터 함수에 대해 공부했지만 함수에 관해 깊이 생각해 본 적은 별로 없다. 예를 들어 y = 2x + 3도 함수이다. 하지만 이를 수학 시간에 배운 직선 그래프로만 알고 있지 x에 어떤 값을 넣었을 때 어떤 변화에 의해서 y 값이 나오는.. 2019. 7. 5.
다중채팅코드 서버코드 import socketserverimport threading HOST =''PORT = 9009lock = threading.Lock() # syncronized 동기화 진행하는 스레드 생성 class UserManager: # 사용자관리 및 채팅 메세지 전송을 담당하는 클래스 # ① 채팅 서버로 입장한 사용자의 등록 # ② 채팅을 종료하는 사용자의 퇴장 관리 # ③ 사용자가 입장하고 퇴장하는 관리 # ④ 사용자가 입력한 메세지를 채팅 서버에 접속한 모두에게 전송 def __init__(self): self.users = {} # 사용자의 등록 정보를 담을 사전 {사용자 이름:(소켓,주소),...} def addUser(self, username, conn, addr): # 사용자 ID를 s.. 2018. 12. 22.
728x90