Es gibt eine Funktion zum Großschreiben eines Strings. Ich möchte das erste Zeichen eines Strings ändern können, um sicherzugehen, dass es in Kleinbuchstaben geschrieben wird.
Wie kann ich das in Python machen?
Es gibt eine Funktion zum Großschreiben eines Strings. Ich möchte das erste Zeichen eines Strings ändern können, um sicherzugehen, dass es in Kleinbuchstaben geschrieben wird.
Wie kann ich das in Python machen?
hELLOwar das, wonach ich gesucht habe.
Antworten:
s = "Bobby tables"
s = s[0].lower() + s[1:]
s = s[10].lower() + s[11:]aber dies gab mir immer noch nur den ersten Buchstaben in Kleinbuchstaben anstelle der ersten 10.
def first_lower(s):
if len(s) == 0:
return s
else:
return s[0].lower() + s[1:]
print first_lower("HELLO") # Prints "hELLO"
print first_lower("") # Doesn't crash :-)
len(s) == 0nur bizarr.
if not s:aber das repräsentiert das Problem nicht so gut.
s[:1].lower() + s[1:]auch für leere Strings. Ich bin damit einverstanden, dass keine Notwendigkeit besteht, mit None umzugehen.
Interessanterweise macht keine dieser Antworten genau das Gegenteil von capitalize(). Zum Beispiel capitalize('abC')gibt Abcstatt AbC. Wenn Sie das Gegenteil von wollen capitalize(), brauchen Sie etwas wie:
def uncapitalize(s):
if len(s) > 0:
s = s[0].lower() + s[1:].upper()
return s
capitalizemit dem Rest der Saite Mist spielt .
Einfachster Weg:
>>> mystring = 'ABCDE'
>>> mystring[0].lower() + mystring[1:]
'aBCDE'
>>>
Aktualisieren
In dieser Antwort (von @RichieHindle) finden Sie eine kinderleichtere Lösung, einschließlich der Behandlung leerer Zeichenfolgen. Diese Antwort funktioniert jedoch nicht None, daher hier meine Meinung :
>>> def first_lower(s):
if not s: # Added to handle case where s == None
return
else:
return s[0].lower() + s[1:]
>>> first_lower(None)
>>> first_lower("HELLO")
'hELLO'
>>> first_lower("")
>>>
Keine Notwendigkeit, Sonderfälle zu behandeln (und ich denke, die Symmetrie ist eher pythonisch):
def uncapitalize(s):
return s[:1].lower() + s[1:].upper()
.upper()in Ihrer Funktion sein.
Ich würde es so schreiben:
def first_lower(s):
if s == "":
return s
return s[0].lower() + s[1:]
Dies hat den (relativen) Vorteil, dass es einen Fehler auslöst, wenn Sie ihm versehentlich etwas übergeben, das keine Zeichenfolge Noneoder eine leere Liste ist.
Dieser doppelte Beitrag führte mich hierher.
Wenn Sie eine Liste von Zeichenfolgen wie die unten gezeigte haben
l = ['SentMessage', 'DeliverySucceeded', 'DeliveryFailed']
Anschließend können Sie den ersten Buchstaben aller Elemente in der Liste konvertieren
l = [x[0].lower() + x[1:] for x in l]
Ausgabe
['sentMessage', 'deliverySucceeded', 'deliveryFailed']
l = [x[0].lower() + x[1:] for x in list(l)]