Python/이것저것 파이썬
-
파이썬 비동기 연습Python/이것저것 파이썬 2022. 8. 5. 13:52
0. 먼저 이 영상을 보고 개념을.. 자바스크립트로 예를 들었지만, 개념 설명이 좋은 것 같습니다... https://www.youtube.com/watch?v=m0icCqHY39U 1. 파이썬에서의 비동기를 잘 정리한 블로그.. https://kukuta.tistory.com/345 동기 프로그래밍을 비동기 프로그래밍으로 바꾸는 과정, 이 과정에서 필요한 키워드인 async, await, asyncio.run(), asyncio.gather(), asyncio.get_event_loop(), run_in_executor() 를 모두 알려주네요. 읽기 편합니다. import asyncio # 비동기 라이브러리 임포트 def 대신 async def로 함수 선언 # 이렇게 선언된 함수를 (네이티브) 코루틴이..
-
파이썬 효율적인 리스트 사용법Python/이것저것 파이썬 2022. 7. 24. 05:57
리스트 컴프리헨션이 가장 빠르다. import time def time_log(original_fn): def wrapper_fn(*args, **kwargs): start_time = time.time() result = original_fn(*args, **kwargs) end_time = time.time() print(f"Working Time [{original_fn.__name__}]: {end_time - start_time}") return result return wrapper_fn @time_log def list_append(): a = list(range(100000)) a2 = list() for i in a: a2.append(i * 2) print(a2[99999]) @time..
-
MixinPython/이것저것 파이썬 2022. 7. 20. 14:25
믹스인. 다중 상속. 코드 재사용의 목적. 일반적인 행동을 캡슐화 함. 믹스인 자체로는 유용하지 않음. 의존을 함. class BaseTokenizer: def __init__(self, token: str): self.token: str = token def __iter__(self): yield from self.token.split('-') test = BaseTokenizer('zxcv-zcv-zcvzxsfdsdf-sfdf') for each in test: print(each) print(list(test)) 일종의 데코레이터 같은 역할을 함. class BaseTokenizer: def __init__(self, token: str): self.token: str = token def __it..
-
시퀸스 생성: __getitem__Python/이것저것 파이썬 2022. 7. 17. 06:56
__getitem__ 매직 메서드를 이용하면, 자체 시퀸스를 생성할 수 있다. class Items: def __init__(self, *values): self._values = list(values) def __len__(self): return len(self._values) def __getitem__(self, item): """자체 시퀸스 생성""" return self._values.__getitem__(item) items = Items(1, 2, 3, 4, 5) print(len(items)) print(items[1:3])
-
파이썬 slicePython/이것저것 파이썬 2022. 7. 17. 06:44
slice 내장 객체가 있다. numbers = (1, 2, 3, 4, 5) print(numbers[2::2]) # (3, 5) interval = slice(2, None, 2) print(numbers[interval]) # (3, 5) interval = slice(3) print(numbers[interval]) # (1, 2, 3) interval = slice(2, 4) print(numbers[interval]) # (3, 4) interval = slice(2, None) print(numbers[interval]) # (3, 4, 5)
-
[Python, Sqlite] 딕셔너리(사전형)로 row 바로 받기Python/이것저것 파이썬 2021. 12. 23. 13:32
[Python, Sqlite] 딕셔너리(dict, dictionary)로 row 바로 받기 https://docs.python.org/3/library/sqlite3.html#row-objects import sqlite3 con = sqlite3.connect(':memory:') cur = con.cursor() cur.execute( ''' create table stocks (date text, trans text, symbol text, qty real, price real) ''' ) cur.execute( '''insert into stocks values ('2006-01-05','BUY','RHAT',100,35.14)''' ) con.commit() cur.close() con.row_..
-
[파이썬] 2차원 리스트, 곱하기 VS 리스트 컴프리헨션Python/이것저것 파이썬 2021. 12. 22. 22:21
모 코딩 커뮤니티에 올라온 질문에 달았던 답변을 정리했습니다. n = 2 g1 = [[0] * (n + 1)] * (n + 1) g1[1][2] = 1 print(g1) # [[0, 0, 1], [0, 0, 1], [0, 0, 1]] 곱하기로 2차원 리스트를 만들면, 리스트는 참조(reference)로 복사된 것을 볼 수 있습니다. 실제론 같은 객체란 이야기죠. 하나에 1을 넣었는데 3개에 1이.... n = 2 g2 = [[0 for _ in range(n + 1)] for _ in range(n + 1)] g2[1][2] = 1 print(g2) # [[0, 0, 0], [0, 0, 1], [0, 0, 0]] 리스트 컴프리헨션(list comprehension)을 사용해서 2차원 리스트를 만들면, 리..