2016-07-15 8 views
0

Aus irgendeinem Grund funktioniert string.replace ("", "") nicht. Gibt es eine andere Möglichkeit zum Entfernen von Leerzeichen aus einer Zeichenfolge? Warum funktioniert .replace in dieser speziellen Situation nicht?Der Versuch, Leerräume in Python zu entfernen .replace funktioniert nicht

string = input('enter a string to see if its a palindrome: ') 
string.replace(' ', '') # for some reason this is not working 
         # not sure why program will only work with no spaces 
foo = [] 
bar = [] 

print(string) 
for c in string: 
    foo.append(c) 
    bar.append(c) 

bar.reverse() 
if foo == bar: 
    print('the sentence you entered is a palindrome') 
else: 
    print('the sentence you entered is not a palindrome') 
+1

Zeichenfolgen sind nicht änderbar. 'str.replace()' erzeugt ein * neues * String-Objekt, aber Sie ignorieren den Rückgabewert. –

+0

Als Randnotiz können Sie Slice-Notation verwenden, um dies viel einfacher zu machen. So etwas wird Ihnen sagen, wenn Sie ein Palindrom 'if string == string [:: - 1]:' haben – Keatinge

Antwort

2

replace() gibt einen neuen String, ist es nicht das Original ändern. Versuchen Sie dies stattdessen:

string = string.replace(" ", "")