Frage von jonathan123, 22

python frage zu string?

hallo, ich probiere gerade ein bisschen mit python herum, verstehe aber nicht die genaue funktionsweise der Methode split(). ich möchte die Anzahl der "life" in dem Lied "Always look on the bright side of life" zählen. Mein Problem ist, dass immer nur die Anzahl der "life" in einer einzelnen Zeile gezählt werden. Das habe ich versucht zu beheben in dem ich die split() Methode mit in die for Schleife schreibe, was aber auch nichts bringt. Hier mein Code:

f_in=open("liedtext.txt", "r")

for line in f_in:

  print line

counterLife=0

for wordCount in f_in:

 split_line = wordCount.split()

 if "life" in split_line:

     counterLife = counterLife+1

print counterLife

f_in.close()

Antwort
von Dory1, 8

Kenne mich mit Python nicht aus, aber ich denke das sollte funktionieren:

open('liedtext.txt', 'r').read().count("life")
Kommentar von Dory1 ,

Im Idealfall konvertierst du den String noch zu lowercase, um sowohl "Life" als auch "life" zu zählen.

print(open('liedtext.txt', 'r').read().lower().count('life'))
Kommentar von jonathan123 ,

perfekt, danke. habe es selber auch hin bekommen. der fehler war, dass man die Datei, also f_in, nur einmal verwenden kann. Deine Version geht aber auch super

Antwort
von TheRedBird, 8

Mit der Methode split "splittest" du einen einzelnen String in ein array mit dem definierten Separator. Falls kein Separator angegeben bzw. definiert ist, wird Whitespace verwendet. 

Kleines Beispiel:

beispiel = "das,ist,ein,beispiel"
for i in beispiel.split(","):
print i
das
ist
ein
beispiel

oder halt..

print beispiel.split(",")
['das','ist','ein','beispiel']

Bekommste halt das Array plain zurück. 

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten