Най-добър начин за премахване на препинателни знаци от низ
Изглежда, че трябва да има по-прост начин от:
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, както можете да видите от времената по-долу. За този тип проблеми се изплаща да се работи на възможно най-ниско ниво.
Времеви код:
Това дава следните резултати:
Обикновено използвам нещо подобно:
Не е задължително да е по-просто, но е по-различен начин, ако сте по-запознати с фамилията re.