2017-08-03 14 views
0

Ich habe f.write(str(ints)) verwendet, um diese Ausgabe in eine Textdatei zu schreiben. Wie kann ich die Klammern inKlammern im Ausgang löschen

(0, 212, 262) 

löschen Ich habe versucht, regex zu verwenden, aber es sagt Objekt ein String oder Bytes erforderlich ist, wenn ich Eingang folgendes:

re.search('\((.*?)\)', ints) 
+1

Willkommen bei Paketüberfluss. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) gilt hier. Wir können Ihnen nicht effektiv helfen, bis Sie Ihren MCVE-Code veröffentlicht und das Problem genau beschrieben haben. Wir sollten in der Lage sein, Ihren gesendeten Code in eine Textdatei einzufügen und das beschriebene Problem zu reproduzieren. Im angegebenen Code ist "ints" nicht definiert. Ist es eine Liste von ganzen Zahlen? – Prune

+1

Oder, noch besser, 'str (ints) [1: -1]' –

+1

Wenn ja, das Problem ist, dass Sie versuchen, Klammern aus einer Datenstruktur zu entfernen - die Klammern existieren nur im Ausgabebild. – Prune

Antwort

2

Sie können, dass wie dies ohne regex erreichen:

>>> ints = (0, 212, 262) 
>>> str(ints)[1:-1] 
'0, 212, 262' 
+0

@ cᴏʟᴅsᴘᴇᴇᴅ Es hat das nicht an meinem Ende gemacht, also könnte er es einfach falsch kopiert haben – Ellie

+0

Vielen Dank für Ihre Hilfe! – Ellie

0

starten:

val = (0, 212, 262) 
print(str(val).strip('(').strip(')')) # >> 0, 212, 262 
+0

Vielen Dank für Ihre Hilfe! – Ellie

0

Sie scheinen ein Tupel an die RegEx übergeben. Versuchen Sie str(ints).strip("(").strip(")").

+0

Das macht Sinn! Das war das erste Mal, dass ich mit RegEx experimentierte, also ist es gut zu wissen:) – Ellie

1

Ich habe eine bessere Idee: Legen Sie nicht die Klammern in der Ausgabe an erster Stelle. Setzen Sie die str Bilder der ganzen Zahlen in einer Liste, join sie dann wie gewünscht:

ints = (0, 212, 262) 
# Improvement per ettanany 
output = ', '.join(str(item) for item in ints) 
print output 

Ausgang:

0, 212, 262 

Alternative Art und Weise auf str der Umwandlung pro COLDSPEED

output = ', '.join(map(str, ints)) 
+1

Oder einfach, '',' .join (map (str, ints))' –

+0

Auch eine gute Idee. – Prune

+1

Sie brauchen in Ihrem Fall keine Liste zu verwenden, ein Generatorausdruck ist effizienter '', '.join (str (Element) für Element in Ints) ' – ettanany

Verwandte Themen