2016-05-12 14 views
6

Ayrıca, dizenin geri kalanını küçük harfe dönüştürmeden Python'daki bir dizgeden faydalanmam gerekiyor. Bu önemsiz gibi görünüyor ama Python'da bunu yapmanın basit bir yolunu bulamıyorum.Perl'in ucfirst() veya s /// e'nin Python eşdeğeri nedir?

böyle bir dize Verilen:

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

bunu yapabileceğimi: Perl düzenli

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

Veya ile: sonucu üretecektir

ucfirst($string) 

ihtiyacım İfade değiştiricileri de şu şekilde yapabilirim:

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

Bunda sorun çok çalışarak:

> 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! 
> 

Ama Python, ilk str.capitalize() metodu alt-vakaya tam dize:

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

görmüyorum Python modülünde herhangi bir eşdeğeri, bir regex kullanarak yapmamı sağlayan Python modülünde.

Python'daki bir dizenin ilk harfini, dizenin geri kalanını daha küçük harflerle kapamadan basit/tek satır yolu var mı?

cevap

11

nereden:

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

çıktısı:

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

Sadece dize dilimleme kullanın: dizeleri iletmenin

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

Not; Bu, capitalize() gibi, yeni bir dize döndürür.

10

Bu daha temiz:

string.title() 
+0

gereksiz büyük harf sürü vardır, özellikle, iyi, çok iyi –

+0

dizesindeki harfler Büyük. thx adam. –