2016-05-12 3 views
6

Ich muss eine Zeichenfolge in Python groß schreiben, ohne auch den Rest der Zeichenfolge in Kleinbuchstaben zu konvertieren. Das scheint trivial zu sein, aber ich kann keine einfache Methode finden, dies in Python zu tun.Was ist das Python-Äquivalent von Perls 'ucfirst() oder s /// e?

eine Zeichenfolge wie folgt gegeben:

"i'm Brian, and so's my wife!" 

In Perl ich dies tun könnte:

ucfirst($string) 

, die das Ergebnis produzieren würde ich brauche:

I'm Brian, and so's my wife! 

Oder mit Perl regelmäßig Ausdruckmodifikatoren könnte ich auch so etwas machen:

$string =~ s/^([a-z])/uc $1/e; 

und das würde funktionieren auch ok:

> perl -l 
$s = "i'm Brian, and so's my wife!"; 
$s =~ s/^([a-z])/uc $1/e; 
print $s; 
[EOF] 
I'm Brian, and so's my wife! 
> 

Aber in Python, die str.capitalize() -Methode unter Fällen die gesamte Zeichenkette zuerst:

>>> s = "i'm Brian, and so's my wife!" 
>>> s.capitalize() 
"I'm brian, and so's my wife!" 
>>> 

Ich sehe nicht, jedes Äquivalent des Modifikators 'e' in Pythons re-Modul, das es mir erlauben würde, es mit einem Regex zu tun.

Gibt es eine einfache/einzeilige Möglichkeit, den ersten Buchstaben einer Zeichenkette in Python zu groß zu schreiben, ohne den Rest der Zeichenkette zu verkleinern?

Antwort

11

Wie wäre:

s = "i'm Brian, and so's my wife!" 
print s[0].upper() + s[1:] 

Die Ausgabe lautet:

I'm Brian, and so's my wife! 
5

Verwenden Sie einfach String-Slicing:

s[0].upper() + s[1:] 

Hinweis, die Strings sind unveränderlich; Dies gibt, genau wie capitalize(), eine neue Zeichenfolge zurück.

10

Das ist viel sauberer:

string.title() 
+0

so gut, die beste, vor allem, wenn es viele unnötige Groß Buchstaben in der Zeichenfolge –

+0

Großartig. Danke. –

Verwandte Themen