본문 바로가기

Languages

(22)
[파이썬 라이브러리] Collections 모듈의 deque (데크, 덱, 디큐, 데큐) deque from collections import deque myList = [1, 2, 3, 4, 5] myDict = {'one': 1, 'two': 2, 'three': 3} myDeque = deque() print(type(myDeque)) print(myDeque) print(deque(myList)) print(deque(myDict)) print(deque(myDict.values())) - deque([iterable[, maxlen]]) - iterable을 넣어주지 않으면 빈 큐를 반환 - 데크, 덱, 디큐, 데큐 등으로 불림 - deque = double-ended-queue = 양방향 큐 - 양쪽 끝에서 append와 pop 등을 O(1) 성능으로 지원 (list의 경우 pop..
[파이썬 라이브러리] functools 모듈의 reduce 메서드 reduce() def reduce(function, iterable, initializer=None): it = iter(iterable) if initializer is None: value = next(it) else: value = initializer for element in it: value = function(value, element) return value - reduce(function, iterable[, initializer=None]) - reduce(함수, 이터러블, 최기값) - 위 코드는 reduce 메서드를 나타낸 코드 - lambda 이용시 첫번째 인자가 누적값(직전 실행의 결과값), 두번째 인자가 새로운 값 - 첫번째 인자를 accumulation(acc), 두번째 인자..
[파이썬 101] lambda (람다) 조건부 표현식 사용하기 myList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(list(map(lambda n: str(n) if n % 2 else n, myList))) print(list(map(lambda n: str(n) if n % 2 else float(n) if n % 3 else n, myList))) - elif 사용 불가 (if-else 는 중첩 가능) - elif가 필요할 경우 함수를 만드는 것을 권장 참조 - 코딩 도장
[파이썬 101] map 함수 (Iterator, Iterable) Iterable myList = [1, 2, 3, 4, 5] myDict = {'name': '홍길동', 'age': 28, 'gender': 'male'} myStr = 'Hello World!' myRange = range(10) for item in iter(myList): print(item, end=' / ') print() for item in myDict: print(item, end=' / ') print() for item in myStr: print(item, end=' / ') print() for item in myRange: print(item, end=' / ') print() - iterable 객체 : 반복 가능한 객체 - Iterable : list, dictionary, ..
[파이썬 101] re 모듈 (함수, 플래그, 일치 객체) 플래그 플래그 설명 re.A re.ASCII 유니코드 대신 ASCII 전용 일치 수행 re.U re.UNICODE 유니코드 일치. (파이썬3에서는 default이므로 필요 없음) re.DEBUG 컴파일된 정규식에 대한 디버그 정보 표시 re.I re.IGNORECASE 대소문자를 구분하지 않는 일치 re.L re.LOCALE 특정 일치를 로케일에 의존하도록 함 (권장 X) re.M re.MULTILINE '^'와 '$'에서 기준을 줄바꿈 단위로 일치 (문자열 시작, 문자열 끝, 개행 전후) re.S re.DOTALL '.' 가 줄넘김을 포함하여 모든 문자와 일치하도록 함 (default : 개행을 제외한 모든 문자) re.X re.VERBOSE 채턴 내 공백 무시 (주석으로 더 직관적인 코드를 작성할때 ..
[파이썬 101] 정규표현식 메타 문자 메타 문자 설명 . 개행 문자 (\n)를 제외한 모든 문자와 매칭 ^ 문자열의 제일 처음과 일치함 $ 문자열의 제일 마지막과 일치함 * * 바로 앞의 문자가 0번 이상 무한대로 반복될 수 있음 + + 바로 앞의 문자가 1번 이상 무한대로 반복될 수 있음 ? 바로 앞의 문자가 0번이나 1번 있을 경우 \ 이스케이프 | or 조건 ( ) 그룹핑 문자 { } 앞의 문자의 반복 횟수 조건 제한 [ ] 문자 집합 ' . ' 사용법 설명 매칭 O 매칭 X a.b c와 b 사이 문자 하나 aab, a0b, a*b, a.b ab, a\nb - 개행 문자를 제외한 문자 하나를 뜻함. (숫자 포함, 특수문자 포함, 띄어쓰기 포함) - re.DOTALL 옵션을 줄 경우 개행 문자와도 매치 ' * ' 사용법 설명 ..
[파이썬 101] 문자열 매칭 메소드 (in, find, rfind, index, rindex startswith, endswith) in hangeul = "가나다라마바사가" print('가나다' in hangeul) # True print('아자차' in hangeul) # False - 문자열 안에 특정 문자열이 포함되는지 여부를 True와 False로 반환 find() hangeul = "가나다라마바사가" print(hangeul.find('가')) # 0 print(hangeul.find('나')) # 1 print(hangeul.find('다')) # 2 print(hangeul.find('하')) # -1 print() print(hangeul.find('다', 3)) # -1 print(hangeul.find('라', 3)) # 3 print() print(hangeul.find('다', 1, 5)) # 2 print(h..
[파이썬 101] zip() 기본 문법 numbers = [1, 2, 3] letters = ["A", "B", "C"] # zip 사용 for pair in zip(numbers, letters): print(pair) print('\n') # 병렬 처리 for number, upper, lower in zip("12345", "ABCDE", "abcde"): print(number, upper, lower) print('\n') # unzip pairs = list(zip(numbers, letters)) print(pairs) numbers, letters = zip(*pairs) print(numbers) print(letters) numbers = list(numbers) letters = list(letters) prin..
[파이썬 101] 해시(Hash) 해시 함수 - 임의의 길이를 갖는 데이터를 고정된 길이의 해시값으로 출력하는 함수 (해시값을 만들어주는 함수) - Key에 대해 산술 연산을 이용해 데이터 위치를 찾도록 도와줌 - 키를 사용하지 않아 같은 입력에 대해서는 항상 같은 출력이 나옴 - 데이터 무결성을 보장하기 위해 사용되는 경우가 많음 (블록체인) 해시 테이블 - (Key, Value)로 데이터를 저장하는 자료구조 (Python의 Dictionary가 이에 해당. 하지만 3.6 이후 순서 유지로 바뀜) - 각각의 Key를 해시 함수를 통해 고유한 index에 저장함 - 패턴 매칭 등을 하지 않아도 바로 데이터에 접근할 수 있어 시간 측면에서 매우 효율적임 - 해시 함수에 의해 같은 인덱스가 나올 경우가 생길 수 있음 (충돌 발생) - 이를 ..
[파이썬 101] 파이썬의 컨테이너 (List, Dictionary, Set, Tuple) 0. 파이썬의 컨테이너 컨테이너 기호 설명 예시 List [ ] 대괄호 - 배열과 비슷한 객체 - 함수가 존재 - 인덱스 값을 이용한 접근이 가능 a = list() b = [] c = [1, 2, 3, 'dog', ['Hello', 'World']] d = range(10) #0부터 차례대로 리스트 Dictionary { } 중괄호 - Key, Value 쌍으로 저장 - Key 값은 고유해야함 - 정보를 빠르게 찾을 수 있음 - 메모리를 많이 차지함 a = {'name':'pey', 'phone':'0119993323'} b = {1: 'hello', 2: 'world'} c = {'a' : [1,2,3]} Set (집합) { } 중괄호 - 순서 구분이 없음 - 중복을 허용하지 않음 - 수학에서의 집합..

반응형