Найкращий спосіб видалити розділові знаки з рядка
Здається, що має бути простіший шлях, ніж:
import string
s = "string. With. Punctuation?" # Sample string
out = s.translate(string.maketrans("",""), string.punctuation)
Чи є?
570
3
З точки зору ефективності, ви не зможете перевершити
Для більш високих версій Python використовуйте наступний код:
Він виконує операції з сирими рядками на C з таблицею пошуку - мало що може перевершити це, окрім написання власного коду на C.
Якщо швидкість не викликає занепокоєння, є ще один варіант:
Це швидше, ніж s.replace з кожним символом, але не буде працювати так само добре, як нечисті підходи python, такі як regexes або string.translate, як ви можете бачити з наведених нижче таймінгів. Для такого типу проблем, виконання на якомога нижчому рівні виправдовує себе.
Хронометраж коду:
Це дає наступні результати:
Зазвичай я використовую щось подібне:
Не обов'язково простіше, але по-іншому, якщо ви краще знайомі з повторною сім'єю.