본문 바로가기

분류 전체보기258

mutable immutable 비교 https://dpdpwl.tistory.com/82 [Python]파이썬 mutable과 immutable 파이썬에는 변경가능한 객체(mutable) 과 변경불가능한 객체(immutable) 이 있습니다. 변경가능한 객체에는 리스트(list)와 딕셔너리(dict) 이 있습니다. 변경불가능한 객체에는 일반적인 자료형 int, str dpdpwl.tistory.com 참고 결론 a= 3 b= 'b' c= (1,2) 이런건 Immutable 변경불가능 (불변) d= [1,2] e= {1:'a',2:'b'} 이런건 mutable 변경가능 (가변) 이유 a = 3 a += 1 이건 변경한게 아니라 다시 '정의'하는것 // ID 값을 확인해보면 달라져 있음. 전문용어로는 Call by value a는 3이다. a.. 2022. 4. 3.
Class로 구현하는 클로저 기능 클로저 설명 # Closure(클로저) 사용 이유 # 서버 프로그래밍 -> 동시성(Concurrency)제어 -> 메모리 공간에 여러 자원이 접근 -> 교착상태(Dead Lock) # 메모리를 공유하지 않고 메시지 전달로 처리하기 위한 -> Erlang # 클로저는 공유하되 변경되지 않는(Immutable, Read Only) 적극적으로 사용 -> 함수형 프로그래밍 # 클로저는 불변자료구조 및 atom, STM -> 멀티스레드(Coroutine) 프로그래밍에 강점 한 클래스 or 함수 내에서 shared 데이터 쓰는거 마냥 data를 공유(공통)으로 쓰는 방식 말로풀자면 작업 1,2,3,4,5 가 있는데 1작업이 30% 정도 진행되고 있고 2작업이 급하게 해야하는 상황일때, 1작업을 중단하고 2작업을 끝.. 2022. 4. 3.
람다 맵 리듀스 필터 https://wikidocs.net/64 3.5 람다(lambda) 오늘은 람다 형식과 그것을 이용하는 여러가지 함수들에 대해서 알아보겠습니다. 당장 완벽하게 소화하실 필요는 없을 것 같구요, 가벼운 마음으로 이런 것이 있다는 정도만 아셔도 ... wikidocs.net 참고 정리 람다를 이용해서 map() reduce() filter()함수의 인자로 넘기는 형식이 많다. 람다 람다 + map iterable한 인자들을 하나씩 람다식에 넣고, 결과값을 리스트로 배열해줌 map( 대입할 함수, 여러변수?) 람다 + filter filter( 조건인 함수, 특정or여러변수 ) 람다 + filter + map 이런식으로도 활용이 가능하다 람다 + reduce함수 import를 해줘야 한다. 2022. 4. 2.
딕셔너리 고급문법(hash table) Hash Table? 키(Key)에 데이터(Value)를 저장하는 데이터 구조 Key를 통해 데이터를 바로 받아올 수 있음 → 속도가 획기적으로 빨라짐 파이썬 딕셔너리(Dictionary) 타입이 해쉬 테이블의 예 - Key를 가지고 바로 데이터(Value)를 꺼냄 보통 배열로 미리 Hash Table 사이즈만큼 생성 후 사용(공간과 탐색 시간을 맞바꾸는 기법) 파이썬에서는 해쉬를 별도로 구현할 필요 없음 - 딕셔너리 타입을 사용하면 되기 때문 쓰는 방법 : t1 = (10,20,(30,40,50)) hash( t1 ) -> t1의 hash값이 생성 print(hash(t1))으로 찍어보기 가능 쓰는 이유 : 빠르다 데이터 검색할때 해시 테이블 : Key와 Value를 사용하는 딕셔너리와 연관지어 설명해.. 2022. 4. 2.
튜플 리스트 딕셔너리 차이 예제 코드 결론 2022. 4. 2.
튜플 고급 문법 (자주 쓰이는거 위주로 정리) # Chapter04-02 # 파이썬 심화 # 시퀀스형 # 컨테이너(Container : 서로다른 자료형[list, tuple, collections.deque], Flat : 한 개의 자료형[str,bytes,bytearray,array.array, memoryview]) # 가변(list, bytearray, array.array, memoryview, deque) vs 불변(tuple, str, bytes) # 리스트 및 튜플 고급 # Tuple Advanced # Unpacking # b, a = a, b print('---') print(divmod(100, 9)) print(divmod(*(100, 9))) print(*(divmod(100, 9))) aa1 = divmod(100, 9) aa.. 2022. 4. 2.