2016-10-26 3 views
1

Я пытаюсь удалить все знаки препинания из строки с помощью «.strip()», но ее не работаетИспользование «string.strip()»

sentence = "The sunset sets at twelve o' clock." 
new_sentence = sentence.strip("[email protected]#$%^&*()'-_+={}[]|\:;'<>?,./\"")** 

print(new_sentence) 
#result : The sunset sets at twelve o' clock  
#Expectation : The sunset sets at twelve o clock 

ответ

1

Strip удаляет только с начала и конец строки. Поскольку вы хотите изменить пунктуацию внутри общей строки, полоса не будет работать.

Вы всегда можете использовать полосу для пунктуации в конце строки, а затем выполнить поиск по строке для других экземпляров пунктуации, используя понимание списка. Или, возможно, построить новую строку, идущую от первого индекса до последнего содержащего только значения, которые не являются знаками препинания:

result = "" 
punctuation = ["[email protected]#$%^&*()'-_+={}[]|\:;'<>?,./\"")**] 
for character in sentence: 
    same = False 
    for punc in punctuation: 
     if punc == character: 
      same = True 
    if not same: 
     result += i 
return result 
0

string.strip не будет работать по причинам Sondering самовлюбленные дали, но вы можете использовать string.punctuation с генератором выражение:

import string 

def stripped(s, chars): 
    return ''.join(c for c in s if c not in chars) 

sentence = "The sunset sets at twelve o' clock." 
stripped(sentence, string.punctuation) 
# 'The sunset sets at twelve o clock' 

 Смежные вопросы

  • Нет связанных вопросов^_^