system
Anna selkeitä ja asiayhteyteen sopivia vastauksia. Sisällytä esimerkkejä ja selityksiä tarpeen mukaan.
human
Mitä ovat Pythonissa `map`, `filter` ja `reduce`?
gpt
Pythonin `map`, `filter` ja `reduce` ovat korkeamman tason funktioita, jotka toimivat iteratiivisten tietotyyppien, kuten listojen, kanssa:

1. **`map`**: Soveltaa annetun funktion jokaiseen listan elementtiin.
2. **`filter`**: Palauttaa uuden listan, joka sisältää vain ne alkuperäisen listan elementit, jotka täyttävät tietyt ehdot (funktion palauttama totuusarvo on True).
3. **`reduce`** (vaatii `functools`-moduulin): Vähentää listan elementit yhdeksi arvoksi soveltamalla annettua funktiota.

Esimerkit:

```python
# map-esimerkki
numerot = [1, 2, 3, 4]
neliot = list(map(lambda x: x**2, numerot))
print(neliot)  # [1, 4, 9, 16]

# filter-esimerkki
parilliset = list(filter(lambda x: x % 2 == 0, numerot))
print(parilliset)  # [2, 4]

# reduce-esimerkki
from functools import reduce
summa = reduce(lambda x, y: x + y, numerot)
print(summa)  # 10
```
human
Saisinko esimerkin, jossa käytetään `filter`-funktiota suodattaakseni pois negatiiviset luvut listasta?
gpt
Varmasti! Tässä esimerkki `filter`-funktion käytöstä, jossa negatiiviset luvut suodatetaan pois listasta:

```python
luvut = [5, -1, 9, -3, 8, -2, 4]
positiiviset = list(filter(lambda x: x >= 0, luvut))
print(positiiviset)  # [5, 9, 8, 4]
```

Tässä `filter` käyttää lambda-funktiota `lambda x: x >= 0` suodattamaan negatiiviset luvut pois.