.split python word count
Ich brauche zum zählen der Wörter in einem Satz. Zum Beispiel, "ich meinem Hund spazieren gehe." 4 Worte, aber "ich gehe meine 3 Hunde" wäre nur 4 Worte, denn zahlen sind keine Wörter. Der code zählt nur die alphabetischen Wörter. Ich verstehe, wie die Anzahl der Wörter, indem Sie einfach die folgenden:
len(string.split)
aber das heißt nicht zahlen. Gibt es eine einfach Möglichkeit (für einen Anfänger) zu berücksichtigen, für zahlen, Symbole, etc.? danke.
Was ist mit "ich gehe meine Beagle-Harrier"? Ist das ein möglicher Satz von vier Worten? (Ich Frage, weil es brechen einige
Ich würde vorschlagen, dass die zahlen in einem Satz Wörter.
Was ist, wenn ich geschrieben
isalpha()
Ansätze.)Ich würde vorschlagen, dass die zahlen in einem Satz Wörter.
Was ist, wenn ich geschrieben
4
als four
statt? Die Bedeutung des Satzes hat sich nicht geändert! 4
ist ein Wort, das auch in Ihrem Satz.InformationsquelleAutor jerry2144 | 2013-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
split
Funktion auf der Zeile, um es zu teilen, basierend auf Räume. Und dann überprüfen Sie, ob jedes Wort hat nur Alphabete mitisalpha
Funktion. Wenn es wahr ist, dann sind 1. Summe aller von Ihnen am Ende.Halten Sie punctutation Markierungen sowie die Trennzeichen?
if not word.isdigit()
erlauben würde"don't"
und'back-to-back'
zu zählen als Worte. Natürlich'3rd'
und'3.145'
würde zählen als Worte. Vielleichtif not word[0].isdigit()
wäre besser. Aber Sie würde immer noch ein problem mit"'3"
im"'3 cats are missing,' she said."
Wenigsten problematisch wäreif any(c.isalpha() for c in word)
.Yup. Ich dachte an all die Fälle, bei denen das scheitern könnte. Aber es ist nicht ganz klar, was tut er genau das erwartet. 🙁
InformationsquelleAutor thefourtheye
Hier ist eine weitere option:
InformationsquelleAutor Jon Clements
Können Sie
.isalpha()
auf strings.InformationsquelleAutor Jason Scheirer
Wenn Sie nicht möchten, zu verwenden
.isalpha
Diese zurück
True
für jedes Wort, das keine Zahl ist, undFalse
für jedes Wort, das eine Zahl ist. Dieser code nutzt den Vorteil der Tatsache, dass in python,True == 1
undFalse == 0
, so erhalten Sie die Anzahl der nicht-Nummer-Wörter.Wenn Sie sich unwohl mit der
int
-ness vonbool
s, Sie können es nicht ausdrücklich um den Leser des Codes, indem dieint
- Funktion (das ist 100% nicht erforderlich, kann aber den code klarer, wenn du es so magst)InformationsquelleAutor SethMMorton
Seit, wegen, um Kommentare wie es aussieht, will er, dass etwas nicht verwenden .isalpha, könnten wir folgenden Befehl in einem try/except.
Ich weiß, es ist nicht schön, aber er behandelt es richtig.
float(word)
um loszuwerden, floating points als auch. Try-except ist das ähnlich Verhalten, nur die überprüfungnot word.isdigit()
.Ich nahm an, dass seit der op nicht wollte .isalpha, dass er würde nicht wollen, dass jeder von er anderen der Stil.
InformationsquelleAutor Jeff Langemeier