Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich habe eine simple Frage: Wie kann ich zB 20% eines nltk-Buches extrahieren?
Ich dachte an sowas, aber das scheint nicht zu klappen, wegen dem Index:
def percentage(liste, prozent):
nr = 0
for line in liste:
nr += 1
anteil = (nr/100)*prozent #bis hier ok
txt = liste[0:anteil] # ich möchte den Textanteil so haben, dass ich ihn nachher gut weiterverarbeiten kann (am besten nicht in einer Liste...)
for word in txt:
print word # do something
Danke,
Marcel
Zuletzt geändert von Anonymous am Freitag 23. November 2012, 10:21, insgesamt 1-mal geändert.
Grund:Quelltext in Python-Code-Tags gesetzt.
@MarcelF6: *Hust*, schau Dir mal bitte die `len()`-Funktion an.
Was klappt denn an dem Index nicht? Explodiert der Rechner? Bekommst Du ein unerwartetes Ergebnis? Falls ja, worin unterscheidet es sich vom Erwarteten?
Aber: Bei der Weiterverarbeitung kommt weiterhin die Fehlermeldung:
"slice indices must be integers or None or have an __index__ method"
Ich sollte den Textanteil wohl besser nicht in Listenform (d.h. jedes Wort als Listeneintrag) haben, oder?
Wie ist das möglich?
(oder wie wäre sonst eine Weiterverarbeitung möglich, anstelle von: for word in txt ?)
Die Fehlermeldung ist doch recht eindeutig:
Wenn du slicen willst müssen die benutzten Werte Integer oder None sein (oder eine Klasse die eine __index__-Methode hat).
0 ist offensichtlich ein Integer, aber was ist anteil?
sparrow hat geschrieben:0 ist offensichtlich ein Integer, aber was ist anteil?
Bzw: Welche Typen kann ``anteil`` abhängig vom gegebenen ``prozent`` wohl annehmen...?
Und wenn wir schon dabei sind: Es ist schon klar, dass `(len(liste) / 100)` potenziell zu einem ungenauen Ergebnis führt (Stichwort: Integer-Division)?
Ich bin gerade nicht an meinem Computer, aber meint ihr also, dass es mit int(anteil) in der eckigen Klammer klappen sollte?
Bezüglich Division: Da hab' ich schon dran gedacht, die Division aus __future__ zu importieren; keine Angst
(alternative hätte ich auch ein Punkt oder 'float' setzen können...)