Wie wende ich eine Funktion auf die Liste der Variableneingaben an? Zum Beispiel gibt die filter
Funktion wahre Werte zurück, aber nicht die tatsächliche Ausgabe der Funktion.
from string import upper
mylis=['this is test', 'another test']
filter(upper, mylis)
['this is test', 'another test']
Die erwartete Ausgabe ist:
['THIS IS TEST', 'ANOTHER TEST']
Ich weiß, upper
ist eingebaut. Dies ist nur ein Beispiel.
map(str.upper, mylis)
würde auch funktionieren, würde helfen, einenstring
Import zu vermeiden .map
nur einlist
on python2.x erstellt wird - In python3.x wird ein Iterator zurückgegeben. Häufig spielt das keine Rolle, aber wenn Sie eine Liste als Ausgabe benötigen , ist es wahrscheinlich besser, ein Listenverständnis wie in der anderen Antwort zu verwenden.list(map(str.upper, mylis))
, wenn Sie eine Liste wünschen .Alternativ können Sie einen
list comprehension
Ansatz wählen:>>> mylis = ['this is test', 'another test'] >>> [item.upper() for item in mylis] ['THIS IS TEST', 'ANOTHER TEST']
quelle
list(map(str.upper, mylist))
Manchmal müssen Sie eine Funktion auf die vorhandenen Mitglieder einer Liste anwenden. Der folgende Code hat bei mir funktioniert:
>>> def func(a, i): ... a[i] = a[i].lower() >>> a = ['TEST', 'TEXT'] >>> list(map(lambda i:func(a, i), range(0, len(a)))) [None, None] >>> print(a) ['test', 'text']
Bitte beachten Sie, dass die Ausgabe von map () an den Listenkonstruktor übergeben wird , um sicherzustellen, dass die Liste in Python 3 konvertiert wird. Die mit None- Werten gefüllte zurückgegebene Liste sollte ignoriert werden, da unser Zweck darin bestand, Liste a an Ort und Stelle zu konvertieren
quelle