Ich bin in Python auf eine sehr seltsame Variable gestoßen. Ich mache ein Tokenisieren Betrieb auf mehreren Unicode-Strings wie folgt:Objekt mit mehreren Listen Python
with open ("verbatims.txt","r") as verbatims :
for line in verbatims:
line = line.decode("utf8")
tokens = nltk.tokenize.word_tokenize(line)
& wenn ich print(tokens)
[u'Vive', u'la', u'poste', u'...', u'.', u'Le', u'facteur', u'qui', u'a', u'la', u'flemme', u'de', u'sonner', u'pour', u'te', u'remettre', u'ton', u'colis', u'et', u'te', u'dis', u'que', u"t'es", u'absent']
[u'Une', u'honte', u'ce', u'petit', u'postier', u'fain\xe9ant', u'.', u'.']
ich dieses seltsame Ausgang haben. Es scheint wie tokens
ist ein Objekt, das mehrere Listen enthält. Hier ist es nur ein Beispiel, aber ich habe so viele Listen wie Sätze. Außerdem kann ich nicht einfach tokens
anrufen, wie ich es in einer gewöhnlichen Liste tun würde. Ich muss einen Druck machen.
Das Problem mit mehreren Listen innerhalb des gleichen Objekts ist, dass, wenn ich das Objekt mit einer einfachen for...in
Schleife analysieren, der Parser nicht funktioniert und nur die letzte Liste des Objekts zurückgibt.
Also meine Fragen sind:
- Wie werden diese Art von Objekten genannt?
- Wie kann ich dieses Objekt analysieren?
Vielen Dank!
Ich vermute, Sie rufen 'Print (Tokens)' innerhalb der for-Schleife und nicht außerhalb. Verschachtelte Listen umhüllen ihren Inhalt in zusätzlichen eckigen Klammern, was hier nicht der Fall ist. Darüber hinaus legt die Tatsache, dass nur die letzte Liste über iteriert wird, nahe, dass Sie nur eine Liste als Rückgabevariable haben. Jede Iteration, Token, wird überschrieben, so dass offensichtlich "print (Token)" verschiedene Dinge zeigt. –
Sind Sie sicher, dass die Ausgabe eines einzelnen Aufrufs zum Drucken (Token) und nicht nur Drucken (Token) mehrmals aufgerufen wird? –
Oh ja, das stimmt. Mein Druck war innerhalb der Schleife. –