# lambda、filter
## def 與 lambda
```python=
# 用 def 定義函數
def compare_max(a,b):
if a>b:
return a
else:
return b
# 用lambda運算式
compare_max = lambda a,b: a if a>b else b
```
`lambda`只能寫一行,所以複雜的還是要用 `def`。
## filter
做篩選,並把符合條件的收集起來。
```python=
def isEven(num):
if num%2==0:
return True
else:
return False
one_to_ten = [1,2,3,4,5,6,7,8,9,10]
evenNumbers = filter(isEven, one_to_ten)
print(list(evenNumbers))
```
混搭 lambda、filter,找小於 10 的偶數
```python=
result = list(filter(lambda n: True if n%2==0 else False, range(10)))
print(result)
```
找 100 以內的質數
```python=
def isPrime(n):
if n<2:
return False
for i in range(2,n):
if n%i==0:
return False
return True
result = list(filter(isPrime, range(100)))
print(result)
```