Ich habe eine getaggte Datei im Format Token / Tag und versuche eine Funktion, die ein Tupel mit Wörtern aus einer (Wort-, Tag-) Liste zurückgibt.
def text_from_tagged_ngram(ngram):
if type(ngram) == tuple:
return ngram[0]
return " ".join(zip(*ngram)[0]) # zip(*ngram)[0] returns a tuple with words from a (word,tag) list
In Python 2.7 hat es gut funktioniert, aber in Python 3.4 gibt es folgenden Fehler:
return " ".join(list[zip(*ngram)[0]])
TypeError: 'zip' object is not subscriptable
Kann jemand helfen?
python
python-3.x
sss
quelle
quelle
Antworten:
In Python 2 wurde
zip
eine Liste zurückgegeben.zip
Gibt in Python 3 ein iterierbares Objekt zurück. Sie können es jedoch zu einer Liste machen, indem Sie einfach Folgendes aufrufenlist
:In diesem Fall wäre das:
Mit einer Liste können Sie die Indizierung verwenden:
items = list(zip(*ngram)) ... items[0]
etc.
Wenn Sie jedoch nur das erste Element benötigen, benötigen Sie keine Liste. Sie könnten einfach verwenden
next
.In diesem Fall wäre das:
quelle