Ich habe die folgende Liste
list1= ['Dodd-Frank', 'insurance', 'regulation']
Ich habe Folgendes verwendet, um den Bindestrich zu entfernen
new1 =[j.replace('-', ' ') for j in list1]
Das Ergebnis habe ich bekommen
new1= ['Dodd Frank', 'insurance', 'regulation']
Das Ergebnis, das im Idealfall gewünscht wird, ist
new1= ['Dodd', 'Frank', 'insurance', 'regulation']
Wie kann ich dies auf die pythonischste (effizienteste Weise) erreichen?
python
python-3.x
string
list
venkatttaknev
quelle
quelle
Antworten:
Drucke:
quelle
list2:
quelle
Dies kann mit einem einzigen Listenverständnis erfolgen, ohne dass Sie dazwischenliegende Datenstrukturen erstellen müssen:
mit Ausgabe
quelle
Von hässlich zu schön
Schön ist besser als hässlich.
Aber es lohnt sich normalerweise, von hässlichem Code zu schönem Code zu wechseln. Also werden wir angreifen , dieses Problem unter Verwendung eines ersten Schleifen , und dann werden wir die Massage Loop-y - Lösung in einem Einzeiler in mehreren Schritten.
Ein erster Versuch
Ein zweiter Versuch
Wir können es besser machen, indem wir
sublist
den Header der innerenfor
Schleife aufteilen, um die Zuweisung kurz vor der Schleife zu vermeiden.Und für die Schlussakte ...
Jetzt, da wir unsere Schleife in iterierter und dann anhängender Form haben, können wir sie bequem in einen Einzeiler einmassieren.
quelle