2013-10-20 55 views
1

我正在做一些關於字符串的Google python練習。在Python中切換兩個字符串的首字母?

我遇到了一個問題,要求切換兩個字符串中每個字符串的前兩個字母。

所以它有一個名爲mix_up的函數,你基本上必須創建定義。所以基本上我做了兩個變量,它們包含前兩個字母中的每一個,然後使用替換函數,然後將它們相加,並且它應該可以工作。但相反,我將原始字符串添加在一起,字母不會切換。

def mix_up(a, b): 
    first = a[0:2] 
    second = b[0:2] 
    a.replace(first, second) 
    b.replace(second, first) 
    phrase = a + " " + b 
    return phrase 
+1

a,b = b [0:2] + a [2:],a [0:2] + b [2:] – bcorso

+0

您不想使用'replace',出錯,因爲它會將前兩個字母分別出現在單詞的任何位置。按照建議使用切片。 – beroe

回答

3

問題是,replace方法返回一個新的字符串,而不是改變原來的。

試試這個:

a = a.replace(first, second) 
b = b.replace(second, first) 
2

replace是不是破壞性的,它會創建一個新的對象。

所以重新分配你的價值觀,例如:a = a.replace(first, second)

2

注意replace()將取代所有出現的,不只是第一個,除非另行指定。

def mix_up(a, b): 
    new_a = b[0:2] + a[2:] 
    new_b = a[0:2] + b[2:] 
    phrase = new_a + " " + new_b 
    return phrase 

或更簡潔:你可以像這樣做很輕鬆地

def mix_up(a, b): 
    return b[0:2] + a[2:] + " " + a[0:2] + b[2:] 

你也可以做replace(first, second, 1),這裏是最後一個參數是事件的最大數量來代替。

相關問題