Comment appliquer une fonction à la liste des entrées variables? Par exemple la fonction filter
renvoie des valeurs vraies mais pas la sortie réelle de la fonction.
from string import upper
mylis=['this is test', 'another test']
filter(upper, mylis)
['this is test', 'another test']
Le résultat attendu est:
['THIS IS TEST', 'ANOTHER TEST']
Je sais que upper
est intégré. C'est juste un exemple.
Je pense que vous voulez utiliser map
au lieu de filter
:
>>> from string import upper
>>> mylis=['this is test', 'another test']
>>> map(upper, mylis)
['THIS IS TEST', 'ANOTHER TEST']
Encore plus simple, vous pouvez utiliser str.upper
au lieu d’importer de string
(grâce à @alecxe):
>>> map(str.upper, mylis)
['THIS IS TEST', 'ANOTHER TEST']
Dans Python 2.x, map
construit une nouvelle liste en appliquant une fonction donnée à chaque élément d'une liste. filter
construit une nouvelle liste en se limitant à éléments qui donnent True
avec une fonction donnée.
Dans Python 3.x, map
et filter
construisez des itérateurs au lieu de listes, donc si vous utilisez Python 3 .x et requièrent une liste, l’approche de compréhension de liste conviendrait mieux.
Ou, alternativement, vous pouvez prendre un list comprehension
approche:
>>> mylis = ['this is test', 'another test']
>>> [item.upper() for item in mylis]
['THIS IS TEST', 'ANOTHER TEST']