---
# System prepended metadata

title: lambda、filter

---

# 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)
```
