2014-02-28 62 views
0

好的回來與另一個。我有:從字符串文本中減去字符串文本

var1 = "tuna" 
var2 = "tunasandwich" 

我想:

var3 = "sandwich" 

我知道我的問題是非常基本的,但我要求他們簡單,尋找簡單的答案,因爲我很新的節目。這裏提到的很多問題都在我的頭上,所以如果其他像我這樣的初學者搜索他們會發現我的簡單初學者問題和答案。

謝謝

+0

p.s.這比搜索在線文檔好得多,我欣賞那些喜歡教導和指導像我這樣的人的善良的靈魂。 – gomapping

回答

3

使用替換功能。所以說:

var1 = "tuna" 
var2 = "tunasandwich" 
var3 = var2.replace(var1, "") 

VAR3的值,然後是sandwich

我們正在做的是將所有出現的var1替換爲發生在var2中的空字符串"",並將其設置爲var3

這將替換字符串中的所有實例。

1

這是一個初學者的好話題。你的問題在解釋方面留下了很大的空間,這使得提供激光精密支持有點困難,但我們都必須從頭開始作爲新手,所以這裏是一個分散的答案。

您可以通過確定所需的字符串是否在開頭處出現,來確定您的字符串是否適用於此治療。

>>> "tunasandwich".startswith("tuna") 
True 

如果是這種情況,那麼你知道你要刪除的前四個字符,或者換一種方式,你想要的字符串開始字符數四(記住,任何序列的元素從數零,所以第四個是第五個元件)。你可以用一個「開放式的切片」做到這一點:

>>> "tunasandwich"[4:] 
'sandwich' 

[4:]說,一直到字符串的結尾創建人物排名第四的另一個字符串(這樣你甚至不需要知道多久該字符串是)。更一般地說,編寫一段適用於任何兩個字符串的代碼會很有用。假設我們寫道:

>>> target = "tuna" 
>>> subject = "tunasandwich" 
>>> # This code should work for any two strings (perhaps...) 
... 
>>> if subject.startswith(target): 
...  subject = subject[len(target):] 
... 
>>> subject 
'sandwich' 

嘗試用不同的值,同樣的事情targetsubject。您應該發現,只有當主題字符串確實以目標字符串開始時,主題字符串纔會替換爲跟隨目標的子字符串。我沒有使用像4這樣的數字作爲子串的開始,而是使用計算出的目標長度,所以代碼適應任何目標字符串。檢查目標是否在主題開始時停止,我們會截斷不符合處理條件的字符串。

當然,最終你會對所有想要了解功能的打字感到厭倦,但是可以等待另一天。