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?

1voto

Gary02127 Punkte 4480

Vernachlässigen Sie nicht den Erhalt des Weißraums. Wenn Sie Folgendes verarbeiten wollen 'fred flinstone' und Sie erhalten 'Fred Flinstone' anstelle von 'Fred Flinstone' haben Sie Ihren Weißraum beschädigt. Bei einigen der oben genannten Lösungen geht der Weißraum verloren. Hier ist eine Lösung, die für Python 2 und 3 geeignet ist und den Leerraum erhält.

def propercase(s):
    return ''.join(map(''.capitalize, re.split(r'(\s+)', s)))

0voto

PADYMKO Punkte 3719

Eine schnelle Funktion funktionierte für Python 3

Python 3.6.9 (default, Nov  7 2019, 10:44:02) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> capitalizeFirtChar = lambda s: s[:1].upper() + s[1:]
>>> print(capitalizeFirtChar('  .     !'))
  .     !
>>> print(capitalizeFirtChar('   !     .'))
   !     .
>>> print(capitalizeFirtChar('faith and Labour make Dreams come true.'))
Faith and Labour make Dreams come true.

0voto

manpikin Punkte 1541

Großschreibung von Zeichenfolgen mit uneinheitlichen Leerzeichen

Ich möchte den Punkt von @Amit Gupta zu den uneinheitlichen Räumen ergänzen:

Aus der ursprünglichen Frage geht hervor, dass wir jedes Wort in der Zeichenfolge groß schreiben möchten s = 'the brown fox' . Was wäre, wenn die Zeichenfolge s = 'the brown fox' mit uneinheitlichen Räumen.

def solve(s):
    # If you want to maintain the spaces in the string, s = 'the brown      fox'
    # Use s.split(' ') instead of s.split().
    # s.split() returns ['the', 'brown', 'fox']
    # while s.split(' ') returns ['the', 'brown', '', '', '', '', '', 'fox']
    capitalized_word_list = [word.capitalize() for word in s.split(' ')]
    return ' '.join(capitalized_word_list)

0voto

Die einfachste Lösung für Ihre Frage, die in meinem Fall funktioniert hat:

import string
def solve(s):
    return string.capwords(s,' ') 

s=input()
res=solve(s)
print(res)

0voto

Eine andere einfache Lösung könnte sein:

" ".join(map(lambda d: d.capitalize(), word.split(' ')))

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