2017-12-29 6 views
-1

Ich habe Code, der wie folgt aussieht:Python Split Ausgabe von in eckigen Klammern

import re 
activity = "Basketball - Girls 9th" 
activity = re.sub(r'\s', ' ', activity).split('-') 
activity = str(activity [1:2]) + str(activity [0:1]) 
print("".join(activity)) 

Ich möchte die Ausgabe wie Girl's 9th Basketball aussehen, aber die aktuelle Ausgabe, wenn es gedruckt ist [' Girls 9th']['Basketball '] Ich möchte von der loswerden eckige Klammern. Ich weiß, dass ich es einfach schneiden kann, aber ich würde lieber wissen, wie es richtig geht.

Antwort

1

Sie sind fast da. Wenn Sie .join auf einem list verwenden, erstellt es string, damit Sie diesen Schritt überspringen können.

import re 
activity = "Basketball - Girls 9th" 
activity = re.sub(r'\s', ' ', activity).split('-') 
activity = activity[1:2] + activity[0:1] 
print(" ".join(activity)) 
1

Sie strynyfying die Listen, die die gleiche wie die Verwendung print(someList) ist - es ist die Darstellung einer Liste, die das [] um es legt.

import re 
activity = "Basketball - Girls 9th" 
activity = re.sub(r'\s', ' ', activity).split('-') 
activity = activity [1:2] + [" "] + activity [0:1] # reorders and reassignes list 

print("".join(activity)) 

Sie in Erwägung ziehen könnte einen Schritt hinzufügen:

# remove empty list items and remove trailing/leading strings 
cleaned = [x.strip() for x in activity if x.strip() != ""] 

print(" ".join(cleaned)) # put a space between each list item 

Diese greift nur die Listen und fügt den benötigten Speicherplatz Punkt dazwischen, so dass Sie Ausgang passt.

0

Sie können es in einer Zeile lösen:

new_activity = ' '.join(activity.split(' - ')[::-1]) 
0

Sie so etwas wie dies versuchen:

import re 
activity = "Basketball - Girls 9th" 
activity = re.sub(r'\s', ' ', activity).split('-') 
activity = str(activity [1:2][0]).strip() + ' ' + str(activity [0:1][0]) 
print(activity) 

Ausgang:

Girls 9th Basketball 
Verwandte Themen