2014-03-30 7 views

Antwort

20

Sie haben eine Liste in einer Liste, so dass es nicht so funktioniert, wie Sie denken, dass es sollte. Dein Versuch war jedoch absolut richtig. Tun Sie es wie folgt:

' '.join(word[0] for word in word_list) 

wo word_list ist Ihre Liste oben angezeigt.

>>> word_list = [['obytay'], ['ikeslay'], ['ishay'], ['artway']] 
>>> print ' '.join(word[0] for word in word_list) 
obytay ikeslay ishay artway 

Tobey likes his wart

+0

Vielen Dank! Ich verstehe nicht, wie es zu einer Liste in eine Liste wurde. In der Codierung habe ich eine leere Liste erstellt und dann diese Wörter angehängt. Die Liste in der Liste kompliziert Dinge für mich definitiv – user3477556

+0

@ user3477556, Vielleicht wäre es dann besser, Ihren anhängigen Teil des Codes zu ändern, so dass Sie nicht mit diesem Problem in erster Linie enden und zu weiteren Komplikationen führen . Schwein Latein, nicht wahr? :) – sshashank124

+0

Stellt sich heraus in der anderen Funktion, die die normalen Wörter in piglatin umwandelt, füge ich das neue piglatin Wort auch in eine leere Liste ein. Ich habe alles behoben und die Join-Funktion funktioniert normal: D Vielen Dank für die Hilfe! – user3477556

1

Es ist eine Liste von Strings. So müssen Sie an die Kette, die Liste der Strings mit chain.from_iterable wie diese

from itertools import chain 
print " ".join(chain.from_iterable(strings)) 
# obytay ikeslay ishay artway 

Es wird effizient sein, wenn wir zum ersten Mal die iterable zu einer Liste verkettet konvertieren, wie diese

print " ".join(list(chain.from_iterable(strings))) 
+1

Downvoter, lassen Sie mich bitte wissen, was mit dieser Antwort falsch ist. – thefourtheye

+1

Ich war nicht der Downvoter, aber vielleicht weil er/sie die Lösung für zu kompliziert hielt. Ehrlich gesagt, ich weiß es nicht. : P – sshashank124

0

können Sie auch reduce.

l = [['obytay'], ['ikeslay'], ['ishay'], ['artway']] 
print " ".join(reduce(lambda a, b: a + b, l)) 
#'obytay ikeslay ishay artway' 
Verwandte Themen