828 Stimmen

Wie kann ich den ersten Buchstaben eines jeden Wortes in einer Zeichenfolge groß schreiben?

s = 'the brown fox'

...hier etwas tun...

s sein sollte:

'The Brown Fox'

Wie lässt sich das am einfachsten bewerkstelligen?

17voto

Warum verkomplizieren Sie Ihr Leben mit Joins und for-Schleifen, wenn die Lösung einfach und sicher ist?

Tun Sie es einfach:

string = "the brown fox"
string[0].upper()+string[1:]

12voto

Zahran Punkte 391

Wenn Sie nur den ersten Buchstaben wollen:

>>> 'hello world'.capitalize()
'Hello world'

Aber jedes Wort muss groß geschrieben werden:

>>> 'hello world'.title()
'Hello World'

11voto

jibberia Punkte 420

Wenn str.title() bei Ihnen nicht funktioniert, können Sie die Großschreibung selbst vornehmen.

  1. Zerlegen der Zeichenkette in eine Liste von Wörtern
  2. Großschreibung des ersten Buchstabens eines jeden Wortes
  3. Zusammenfügen der Wörter zu einer einzigen Zeichenkette

Einzeiler:

>>> ' '.join([s[0].upper() + s[1:] for s in "they're bill's friends from the UK".split(' ')])
"They're Bill's Friends From The UK"

Deutliches Beispiel:

input = "they're bill's friends from the UK"
words = input.split(' ')
capitalized_words = []
for word in words:
    title_case_word = word[0].upper() + word[1:]
    capitalized_words.append(title_case_word)
output = ' '.join(capitalized_words)

9voto

Wim Feijen Punkte 671

Eine leere Zeichenkette führt zu einem Fehler, wenn Sie auf [1:] zugreifen. Daher würde ich verwenden:

def my_uppercase(title):
    if not title:
       return ''
    return title[0].upper() + title[1:]

um nur den ersten Buchstaben in Großbuchstaben zu schreiben.

7voto

Amit Gupta Punkte 2315

Obwohl alle Antworten bereits zufriedenstellend sind, werde ich versuchen, die beiden zusätzlichen Fälle zusammen mit allen vorherigen Fällen zu behandeln.

wenn die Abstände nicht einheitlich sind und Sie dieselben Werte beibehalten wollen

string = hello    world i  am    here.

wenn die Zeichenfolge nicht mit einem Alphabet beginnt

string = 1 w 2 r 3g

Hier können Sie dies verwenden:

def solve(s):
    a = s.split(' ')
    for i in range(len(a)):
        a[i]= a[i].capitalize()
    return ' '.join(a)

Dies wird Ihnen helfen:

output = Hello    World I  Am    Here
output = 1 W 2 R 3g

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X