Python nur Großbuchstaben Großbuchstaben
Bin ich mir bewusst .capitalize() wandelt den ersten Buchstaben einer Zeichenkette, aber was ist, wenn das erste Zeichen ist ein integer?
diese
1bob
5sandy
zu diesem
1Bob
5Sandy
InformationsquelleAutor der Frage user1442957 | 2012-09-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn das erste Zeichen eine Ganzzahl ist, wird es nicht die Anfangsbuchstaben.
Wenn Sie möchten, dass die Funktionalität, die ausziehen, die Ziffern, die Sie verwenden können
'2'.isdigit()
zu überprüfen, für jedes Zeichen.InformationsquelleAutor der Antwort Ali Afshar
Nur, weil sonst niemand erwähnt hat:
Allerdings würde dies auch geben
d.h. es wird nicht nur Großschreibung des ersten Buchstaben. Aber dann
.capitalize()
hat das gleiche Problem, zumindest in dieser'joe Bob'.capitalize() == 'Joe bob'
, also meh.InformationsquelleAutor der Antwort DSM
Dies ist ähnlich zu @Anon ' s Antwort, dass es hält den rest der Zeichenfolge, die den Fall intakt, ohne die Notwendigkeit für das re-Modul.
Als @Xan darauf hingewiesen, die Funktion könnte mehr Fehler überprüfen (wie etwa die überprüfung, dass x ist eine Folge - allerdings bin ich auslassen Grenzfälle zur Veranschaulichung der Technik)
Aktualisiert pro @normanius Kommentar (danke!)
Dank @GeoStoneMarten auf den Hinweis, ich habe die Frage nicht beantworten! -behoben, dass
InformationsquelleAutor der Antwort pinkwerks
Hier ist ein one-liner, wird die Großschreibung der ersten Buchstaben und lassen Sie die Falle alle folgenden Buchstaben:
Dadurch wird
WordsWithOtherUppercaseLetters
InformationsquelleAutor der Antwort Anon
Als sehen hier beantwortet von Chen Houwu, ist es möglich, die Verwendung von string-Paket:
InformationsquelleAutor der Antwort Facottons
Ich kam mit dieser:
InformationsquelleAutor der Antwort Prasanth
Können Sie ersetzen Sie den ersten Buchstaben (
preceded by a digit
) jedes Wort mit regex:InformationsquelleAutor der Antwort Zety
einen one-liner:
' '.join(token_text[:1].upper() + token_text[1:] for sub in text.split(' '))
InformationsquelleAutor der Antwort Gürol Canbek