在Python中切换两个字符串的第一个字母?

时间:2013-10-20 03:22:42

标签: python string

我正在进行一些Google 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

3 个答案:

答案 0 :(得分:3)

问题是replace方法返回一个新字符串,而不是更改原始字符串。

请改为尝试:

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

答案 1 :(得分:2)

replace不具有破坏性,它会创建一个新对象。

重新分配你的价值观,例如:a = a.replace(first, second)

答案 2 :(得分: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),其中最后一个参数是要替换的最大出现次数。