2017-06-22 1 views
-3

Wie kann ich Zeichen nach FORTH 'entfernen.' ?Um Zeichen in Python zu entfernen

Für zB 123.1223.123.123

Ich möchte die Ausgabe als 123.1223.123

x = "207.185.152.69.2005" 
    y = 0 
    for i in x: 
    if (i == '.'): 
     y = y + 1 
      if (y == 4): 
       i.replace('.','') 
+4

'print (x [: '' x.rfind()]) depperm' – depperm

Antwort

1

meisten optimierte Art und Weise, dies zu tun ist

x = "207.185.152.69.2005" 
print(x[:x.rfind('.')]) 

Diese Methode Entfernen Sie im Wesentlichen das letzte Auftreten. Suchen Sie nach der Position des letzten Vorkommens und schneiden Sie alle Zeichen nach dieser Position weg.

mit depperm commant Einverstanden, Thanx

+0

Können Sie mir das x [: x.rfind ('.')] Erklären? – shashank

+1

_ "Optimalste Methode, dies zu tun" _ - Nun, das hängt von der Länge der Saite ab. In der Tat wird diese Methode für Strings mit mehr als fünf Punkten fehlschlagen. Nicht von Ihrer Antwort wegzunehmen, aber ich denke, dass die Verwendung von Regex hier die robustere Lösung wäre. –

+0

@ChristianDean für dieses Beispiel String Split/Join-Methode ist doppelt so schnell wie Regexp; für eine auf diese Weise erzeugte Zeichenkette: '". ". join ([" g "* 10000] * 10)' es ist umgekehrt '. –

3

Sie diesen regulären Ausdruck verwenden können, die nur passt auf, was Sie wollen:

\d*\.\d*\.\d* 

Hier ist ein Python-Code, der dies tun wird:

# IMPORT 
import re 

# SET UP REGEX 
myre = re.compile(r"\d*\.\d*\.\d*") 

# FIND MATCH 
matches = myre.findall(dataString) 

# PRINTS STRING YOUR LOOKING FOR 
print(matches[0]) 
0

Split, in Scheiben schneiden und verbinden verbinden ((x.split() " "[4]))".".

+0

Willkommen bei Stack-Überlauf. In der Hilfe oben rechts im Antwortfenster sehen Sie, wie Sie den Code formatieren. Auch kann es hilfreich sein, wenn Sie Ihre Antwort etwas erklären. Was war das Problem mit dem OP-Code? Wie wird das behoben? – Gary99

Verwandte Themen