Er iteriert über jedes Element in der Liste an und legen Sie das Element in eine neue Liste.
Beispiel:
>>> lst =['banana','mango','apple']>>>[[i]for i in lst][['banana'],['mango'],['apple']]
Wenn Sie sich bewerben list func auf jedes Element, es würde jedes Element, das im format-string eine Liste von strings.
>>>[list(i)for i in lst][['b','a','n','a','n','a'],['m','a','n','g','o'],['a','p','p','l','e']]>>>
Dank Avinash.. es funktioniert gut für mich..
Was ist map? Ich mag diese map(list, lst)
nooo....
Lol kannst du das etwas erläutern mehr auf?
überprüfen Sie blwo Antwort auf die map
wie [list(i) for i in lst]
du hast Recht, aber was ich vorgeschlagen habe ist weniger ausführlich. Ich will einfach nur wissen, dass das, was macht es eine schlechte Idee. Ich fühle mich wie ich vielleicht bereits wissen, und es hat etwas zu tun mit einer Darstellung von anzeigen in python 2 vs python 3
map gilt den func, die als erste arg um jedes Element in der iterierbar.. so map(list, iterable) == [list(i) for i in iterable] (in python2) Und beachten Sie, dass list('foo') != ['foo']
Möglicherweise, weil es verpönt ist, wenn Reiniger pythonic alternativen wie die Liste Verstehens existieren. Obwohl in diesem speziellen Fall sieht es sehr elegant-ich würde wahrscheinlich begünstigen Karte.
Bitte berücksichtigen Sie akzeptieren die Antwort, wenn es dein problem gelöst hat.
Obwohl nicht pythonic, dies ist eine richtige Antwort. Nicht sicher, warum dies so war downvoted. Könnte gemacht werden, präziser: map(list, my_list).
Karte ist etwas langsamer als list comp.
Ich bevorzuge die Lesbarkeit und Eleganz über Mikro-Optimierungen, die Natur. Wenn diese innerhalb von Nanosekunden waren viel Wert, die ich wahrscheinlich wählen Sie andere Sprachen.
my_list ein) ist nicht zu arbeiten. list(1) geben ein TypeError
wie definierten Sie Ihre Liste my_list
sorry, das sollte es wirft einen Fehler auf einer Liste von ints
und @aydow list(1) und map(list, my_list) würde nicht funktionieren, list nimmt iterable als input, sondern in map(list, my_list) my_list ein Werte als scaler aber nicht iterable. Überprüfen Sie help(list). also besser ist es, antwortete ich.
Sie haben Recht, die map(list, my_list) würde nicht funktionieren. Nicht sicher, was ich dachte. Ich stand von der ersten Aussage aber, list comprehension wird mehr pythonic für diesen Anwendungsfall.
List comprehension
Er iteriert über jedes Element in der Liste an und legen Sie das Element in eine neue Liste.
Beispiel:
Wenn Sie sich bewerben
list
func auf jedes Element, es würde jedes Element, das im format-string eine Liste von strings.map(list, lst)
[list(i) for i in lst]
map
gilt den func, die als erste arg um jedes Element in der iterierbar.. somap(list, iterable) == [list(i) for i in iterable]
(in python2) Und beachten Sie, dasslist('foo') != ['foo']
Versuchen Sie, Diese one-Liner:-
Ergebnis
map(list, my_list)
.list(1)
geben einTypeError
my_list
int
slist(1)
undmap(list, my_list)
würde nicht funktionieren,list
nimmtiterable
als input, sondern inmap(list, my_list)
my_list ein Werte alsscaler
aber nichtiterable
. Überprüfen Sie help(list). also besser ist es, antwortete ich.map(list, my_list)
würde nicht funktionieren. Nicht sicher, was ich dachte. Ich stand von der ersten Aussage aber, list comprehension wird mehr pythonic für diesen Anwendungsfall.erstellen Sie zunächst eine leere Liste und iteriere durch die Liste. split jede Liste und fügen Sie diese in Ihre leere Liste.