(씽크파이썬 19장)
if x > 0:
y = math.log(x)
else:
y = float('nan')
y = math.log(x) if x > 0 else float('nan')
리스트 컴프리헨션
제너레이터 표현식
g = (x**2 for. in range(5))
next(g) 0
next(g) 1
마지막에 도달하면 StopIteration 예외sum(x**2 for x in range(5))
any([False, True, False])
# True
all([False, True, False])
# False
set(word) <= set(available)
# word의 모든 문자가 available에 들어있는지 확인
# 한 집합이 하위 집합인지 또는 다른 집합인지 확인
counter
Counter(word1) == Counter(word2)
defaultdict
이름있는 튜플
첫번째 인수는 생성할 클래스의 이름, 두번째는 객체가 갖게 될 속성들의 리스트를 문자열로 나타낸 것
클래스 객체를 반환함
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __str__(self):
return x, y
# 위 코드를 아래처럼 변경 가능
from collections import namedtuple
Point = namedtuple('Point', ['x','y']
이름으로 접근 가능, 이름있는 튜플을 튜플로 취급할 수 있음
키워드 인수를 모으기
```python
def printall(*args, **kwargs):
print(args, kwargs)
printall(1, 2.0, third='3')
# (1, 2.0) {'third' : '3'}
```
assert
assert 문이란? 조건문이 True가 아닐 경우, 예외를 일으킨다
조건이 참일 때 코드는 내가 보장한다. 이 조건은 올바르다. 하지만 거짓은 보장x → 에러를 발생시켜라