2017-05-25 5 views
-1

Ich möchte die Großbuchstaben Zeichenfolge in einer Variablen in Kleinbuchstaben ändern und die Leerzeichen mit "_" ersetzen. Ich weiß, dass ich eine 'if' Anweisung für alle Instanzen verwenden kann, aber das würde zu lange dauern. Es ist die Eingabe eines Benutzers auf einen Dateinamen, dhSo ändern Sie Großbuchstaben in Kleinbuchstaben und Leerzeichen in Unterstriche

user_selection = 'Barracuda Limited' # what I have 
save_name == 'barracuda_limited'  # what I want 

Hinweis zu speichern: ich durch die Seite gelesen haben, wie zu schreiben und ich versuche mein Bestes, aber ich habe gerade zu lernen begonnen Codierung und Probleme, bin versuchen, meine Fragen zu gestalten.

+0

Diese leicht beantwortet hätte durch googeln und/oder Blick auf die Python-Dokumente. Nichts persönliches, aber Google ist ziemlich einfach. – SH7890

+0

Verständlich, aber bitte, ich hätte dies nicht gepostet, wenn ich die Antwort zuerst online finden könnte. Ich habe unter vielen anderen Varianten "Wie ändere ich Groß- und Kleinschreibung, Python" eingegeben und konnte nicht die richtige Syntax finden. Dies ist meine erste Woche, die versucht zu programmieren und ich habe keine Ahnung, wo ich Klammern für Funktionen, Punkte oder beides wie in diesem Beispiel verwenden sollte. Es scheint einfach zu sein, andere Antworten für diejenigen zu finden, die das für ihren Lebensunterhalt tun, aber viele Anfänger werden es schwer finden, Code zu interpretieren, der nicht spezifisch für ihre Frage ist. – user88720

Antwort

2

Das ist einfach, die str.lower() und str.replace() Methoden:

>>> user_selection = 'Barracuda Limited' 
>>> save_name = user_selection.lower().replace(' ', '_') 
>>> save_name 
'barracuda_limited' 
+0

Das hat den Trick gut gemacht, danke – user88720

1

Um Ihre gewünschten Daten bekommen Sie so etwas tun kann:

user_selection = 'Barracuda Limited': 
save_name = "_".join(k.lower() for k in user_selection.split()) 
# save_name is: 'barracuda_limited' 
+1

Das Aufteilen und anschließende Verbinden der Zeichenfolge ist im Vergleich zur integrierten 'str.replace()' -Methode ziemlich ineffizient, und Ihre Lösung ersetzt * mehrere * aufeinanderfolgende Leerzeichen (einschließlich Tabulatoren und Zeilenumbrüche) durch * single * Unterstrich (was OP sein könnte, ist aber nicht das, wonach sie gefragt haben). –

+0

Ja, du hast Recht. Aber ich dachte, dass das OP eine allgemeine Lösung wünscht, die wann immer er will mit zufälligen Daten (nicht nur mit den Daten in seiner Frage) verwendet werden kann. Ihre Lösung ist sehr effizient und einfach zu bedienen. –

Verwandte Themen