I still think the relatively straightforward:

```
def get_tokens(species):
    tokens = []
    names = filter(None, [s. common_name, s.genus,
                          s.species, s.cultivar_name])
    for name in names:
        tokens.extend(name.split())

    return tokens
```

would be clearer here.