2017-11-28 7 views
2

Ich lerne die Zwischen Python.Ersetzen Sie mehrere Elemente in einer Zeichenfolge

Angenommen, es gibt eine Zeichenfolge

astring = '[Embodied cognition - Wikipedia](https://en.wikipedia.org/wiki/Embodied_cognition)' 

Businesses string.punctuation die Wörter mit map

from string import punctuation 
for delimiter in punctuation: 
    if delimiter in astring: 
     astring = astring.replace(delimiter, ' ') 

In [7]: astring 
Out[7]: ' Embodied cognition Wikipedia https en wikipedia org wiki Embodied cognition ' 

Ich habe versucht, zu extrahieren und es funktioniert

In [12]: a = map(astring.replace, punctuation, ' ') 
In [14]: list(a) 
Out[14]: [' Embodied cognition Wikipedia https en wikipedia org wiki Embodied cognition '] 

Wie kann das Problem dadurch gelöst werden, andere fortgeschrittene Techniken?

+0

Welche Version von Python verwenden Sie? 'map' sollte das string' ''Argument mit' None' füllen, wenn ich die Dokumente richtig lese. –

+0

Entschuldigung, ich ergänze 'python3.6' Tag sofort. @ SilvioMayolo –

Antwort

4

Sie sollten in reguläre Ausdrücke (kurz Regex) suchen.

import re 

astring = '[Embodied cognition - Wikipedia](https://en.wikipedia.org/wiki/Embodied_cognition)' 
re.sub(r'[^A-Za-z0-9]+', ' ', astring) 
# returns: 
' Embodied cognition Wikipedia https en wikipedia org wiki Embodied cognition ' 
+0

Danke. Ich habe letzten Samstag Regex gelernt. Es verbessert die Effizienz bei der Textverarbeitung erheblich. –

Verwandte Themen