我有一個標點符號列表,我希望循環從用戶輸入的句子中刪除,它似乎忽略了連續的多個標點符號?循環刪除列表中的字符不起作用
punctuation = ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'"]
usr_str=input('Type in a line of text: ')
#Convert to list
usr_list= list(usr_str)
#Checks if each item in list is punctuation, and removes ones that are
for char in usr_list:
if char in punctuation:
usr_list.remove(char)
#Prints resulting string
print(''.join(usr_list))
現在,這適用於:
This is an example string, which works fine!
它打印:
This is an example string which works fine
然而,這樣的事情:
Testing!!!!,)
給出:
Testing!!
在此先感謝您的幫助!
的問題是,迭代器沒有被移回檢查取一個去除的地方性格。但是,您確實應該使用更清晰的方法,例如RegEx。 –
好的斯賓塞是有道理的,我在Python中是合理的新手,所以我會做一些研究正則表達式。謝謝! – Stensby
如果你不想進入RegEx,我還會推薦@Sonon的'string.translate'的答案。 –