Data Structure
Lists
: 아무 타입이나 넣기 가능 + 길이가 정해져 있지 않음
- List indexing: seq[index] 형태로 요소 하나 접근
- List slicing: seq[start: end: step] 형태로 List 자르기 (end포함X)
Reserved Words VS Built-in functions VS Methods
- 문법적 요소, 괄호X, 재정의 불가능 del, if-else, assert
- 기본 정의된 함수, 별개 함수 사용, 재정의 가능, 편의성 향상 --> len(), range(), sum()
- 객체 내 정의된 함수, .methods()로 접근, 해당 객체를 다룸 --> .append(), .insert(), .extend()
Tuple
- Immutable list(불변 타입 리스트)
- ( ) 를 사용
- 함수에서 2개 이상 요소를 반환할 때 사용
- Tuple안의 요소는 가변 타입일 수도 있음
- String 타입일 때 일종의 문자 tuple로 생각 가능
Packing and Unpacking
- Unpacking: * (Asterisk)로 남는 요소를 리스트로 남기기 가능
Dictionary
- 매핑을 위한 데이터 구조 (key , value)
- Key: 불변 타입만! + 중복이 불가능
- Set: Dictionary의 Key만 집합처럼 모여 있는 형태
Conditional Statements
- if-elif-else
- 삼항 연산자: [Value1] if [Condition] else [Value2]
Loop
- While Statement: 조건을 만족하는 동안 출력
- For Statement: 주어진 객체를 순환 (for [Element] in [Iterable])
- break: 가장 바깥쪽의 반복문 나가기
- continue: 가장 바깥의 반복문의 처음으로 되돌아가기
Scope
- Global scope: 최상위에 선언 == 다른 파일에서도 접근 가능
- Local scope: 함수 안에 선언 == 상위함수에서 접근 불가
Variable Capture
- 상위 값이 바뀌면 하위 값이 바뀜
- 파라미터가 없는데도 불구하고 함수내에서 바뀌어버림 --> 따라서, 파라미터를 써줘야 버그가 발생이 없어진다.
- Closure = Factory형식
- 파이썬에서 함수 = 일반 객체
- 변수로 할당 가능
Decorator
- 함수 하나를 인자로 받아 같은 형태의 함수를 반환하는 함수
- @을 사용
- Class를 사용할 시 Decorator에 인자 추가가 가능
Parameters
- Function Parameters
- Variable Length Parameter
- Keyword Variable Length Parameter
Pythonic Programming
Comprehension
- result = [i * 2 for i in range(10)] // append
- result = {str(i): i for i in range(10)} // key:value
- result = {str(i) for i in range(10)} // add()
- evens = [i for i in range(100) if i % 2 == 0] // 원하는 요소만 추가
- result = [(i, j) for i in range(5) for j in range(i)] // 이중 for문
- eye = [[int(i == j) for j in range(5)] for i in range(5)] // 다차원 배열 만들기
Generator
- 요소를 하나씩 생성해서 반환하는 객체
- Function에 yield를 사용하면 Generator가 된다
- 괄호로 generator comprehension 형태로 선언 가능
- even_generator = (i * 2 for i in range(100))
Lambda Function
- 함수 이름 없이 빠르게 만들어 쓸 수 있는 함수 --> add = lambda a, b : a+b
- seq = [6, -2, 8, 4, -5] list(map(lambda x: x * 2, seq)) --> [12, -4, 16, 8, -10]
- seq = [6, -2, 8, 4, -5] list(filter(lambda x: x > 0, seq)) --> [6, 8, 4]
'AI NLP Study > Python' 카테고리의 다른 글
Python Object-Oriented Programming (객체 지향 프로그래밍) (0) | 2022.01.10 |
---|---|
Python Overview, Variable & Operator (0) | 2022.01.07 |