2016-11-17 3 views

Antwort

1

So scheint es, dass Sie nicht in Tatsache wollen die ganze "Schnur" oder "Linie" entfernen, aber eher das Wort? Dann sollten Sie die Zeichenfolge in Worte spalten:

words = test.split(' ') 

Und iterieren jetzt durch jedes Element in words, Ihren Scheck auf den ersten Buchstaben durchführen. Schließlich kombiniert diese Elemente wieder in einen String:

result = "" 
for word in words: 
    if !word.startswith(prefix): 
     result += (word + " ") 
0

for line in text in Ihrem Fall über jedes Zeichen im Text durchlaufen wird, nicht jedes Wort. Wenn es z. B. '#' in '#feeling' wird, wird es die # entfernen, aber 'feeling' wird bleiben, da keine der anderen Zeichen in dieser Zeichenfolge mit '#' oder '#' beginnen. Sie können bestätigen, dass Ihr Code zeichenweise wird, indem Sie:

for line in text: 
    print(line) 

Versuchen Sie, die folgenden statt, was die Filterung in einer einzigen Zeile tut:

text = 'I miss Wonderland #feeling sad @omg' 
prefix = ('#','@') 
words = text.split() # Split the text into a list of its individual words. 

# Join only those words that don't start with prefix 
print(' '.join([word for word in words if not word.startswith(prefix)])) 
Verwandte Themen