Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich nicht-alphanumerische Zeichen effizient aus Zeichenfolgen in Python entfernen?

Wie kann ich nicht-alphanumerische Zeichen effizient aus Zeichenfolgen in Python entfernen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-05 22:20:02904Durchsuche

How Can I Efficiently Remove Non-Alphanumeric Characters from Strings in Python?

Entfernen nicht-alphanumerischer Zeichen aus Zeichenfolgen in Python

Das Entfernen nicht-alphanumerischer Zeichen aus Zeichenfolgen umfasst das Entfernen anderer Zeichen als Buchstaben, Zahlen usw Unterstriche. Es gibt zwar Lösungen für PHP, diese stimmen jedoch möglicherweise nicht mit den Pythonic-Prinzipien überein.

Eine effiziente Methode besteht darin, einen regulären Ausdruck zu definieren, der nicht-alphanumerischen Zeichen (W_) entspricht, und ihn durch eine leere Zeichenfolge zu ersetzen. Verwendung der re.sub()-Funktion zusammen mit einem kompilierten regulären Ausdrucksmuster:

<code class="python">import re, string
pattern = re.compile('[\W_]+')  # Compiled regular expression
string.printable = string.printable.replace(pattern, '')  # Substitute non-alphanumeric characters with empty string</code>

Andere Methoden umfassen die Verwendung von Listenverständnissen zum Herausfiltern nicht alphanumerischer Zeichen oder die Verwendung der str.isalnum()-Methode innerhalb von filter( ):

<code class="python">''.join(ch for ch in string if ch.isalnum())
filter(str.isalnum, string)</code>

Vergleichendes Benchmarking zeigte, dass der re.sub()-Ansatz mit einem kompilierten regulären Ausdruck die beste Leistung erbrachte:

$ python -m timeit -s \
    "import re, string; pattern = re.compile('[\W_]+')" \
    "pattern.sub('', string.printable)"
100000 loops, best of 3: 11.2 usec per loop

Das obige ist der detaillierte Inhalt vonWie kann ich nicht-alphanumerische Zeichen effizient aus Zeichenfolgen in Python entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn