2012-05-12 141 views
1

說我有字符串:刪除所有的字符第一個字符後

fame = "John" 
lname = "Doe" 

我想要做的就是它,所以我可以把L-NAME並讓這個第一個字符後,一切都被刪除,所以我可以縮寫姓。輸出將是:

fullname = "John D." 

我不使用Python經歷過,所以我不能找到這樣的東西,因爲我不知道這是什麼真的叫你。

謝謝!

+0

這兩個字符串都是排序的數組。因此,您可以根據可以稍後連接的索引來訪問字符。 – techiev2

回答

9
>>> fname = "John" 
>>> lname = "Doe" 
>>> fullname = '{0} {1}.'.format(fname, lname[0]) 
>>> fullname 
'John D.' 
+1

+1不使用%s'%(tuple)'語法。 – voithos

+6

更好的是:保持格式化字符串格式:''{0} {1 [0]}。'。格式('John','Doe')' – bluepnume

1

以下來自Python REPL的示例代碼是如何完成所需內容的示例。您可以對一個或多個字符串元素進行索引,如lname[0],並用「+」連接子字符串。

>>> fame = "John" 
>>> lname = "Doe" 
>>> fullname = fame + " " + lname[0] + '.' 
>>> fullname 
'John D.' 
+0

儘管沒有錯,但這種附加語法並不是最佳實踐。字符串格式化是首選。 –

2

很簡單,你可以通過索引來調用字符串中的字符。所以第一個字符是索引0,第二個是1,依此類推。所以......

fullname = fname + " " + lname[0] + "." 

,或者有點更Python:

fullname = "%s %s."%(fname, lname[0]) 

Python有一些不錯的文檔。閱讀以瞭解如何在Python中使用字符串:http://docs.python.org/library/string.html

---- ----編輯

它已經到了我的注意,用符號%是不是在最新版本的Python的一個好主意。我猜這是爲了幫助程序員避免注入攻擊。所以,像其他人已經說了,這是最好的使用這樣的:我剛纔提供

fullname = "{0} {1}.".format(fname, lname[0]) 

fullname = "{0} {1[0]}".format(fname, lname) 

Python文檔解釋了這一點。很明顯,我不能在這個編輯中記下代碼。

+2

不鼓勵使用'%'語法(如果您使用的是Python安裝) - 請改爲使用'.format()'。 –

+0

我沒有意識到這一點。當我學習Python的時候,就是我被教會格式化字符串的方式。我會研究這一點。謝謝。 – acattle

相關問題