在python中交换特定的字符

时间:2015-03-06 08:13:39

标签: python string python-2.7

如何在Python中交换字符串中的字符?

例如:

text = 'gghghg didjf ekofrhhwehg'

我想交换所有的''在' k'的文本中。

我会使用ord()chr()函数吗?

更新: 当我运行此代码时:

text = 'gghghg didjf ekofrhhwehg'
text.replace("g", "k")

print text

它不会改变输出

5 个答案:

答案 0 :(得分:5)

您只需使用str.replace,就像这样

>>> text = 'gghghg didjf ekofrhhwehg'
>>> text.replace("g", "k")
kkhkhk didjf ekofrhhwehk

或者,您可以创建转换表并使用str.translate,就像这样

>>> from string import maketrans
>>> text.translate(maketrans("g", "k"))
kkhkhk didjf ekofrhhwehk

注意:如果您实际上意味着将所有g换成k s,反之亦然,那么您应该使用str.translate,就像这样

>>> from string import maketrans
>>> 'gluke'.translate(maketrans("gk", "kg"))
kluge

在结果中查看g中的gluke k中的kgluke中的g更改为text.replace的方式。


关于你的编辑,Python字符串是不可变的。因此,一旦创建了String对象,就永远无法更改其值。你只需要创建一个新的。因此,请将text的结果分配回>>> text = 'gghghg didjf ekofrhhwehg' >>> text = text.replace("g", "k") >>> text kkhkhk didjf ekofrhhwehk ,就像这样

{{1}}

答案 1 :(得分:1)

只需使用replace

In [1]: text = 'gghghg didjf ekofrhhwehg'

In [2]: text.replace("g", "k")

Out[2]: 'kkhkhk didjf ekofrhhwehk'

答案 2 :(得分:1)

您也可以使用内置工具。

>>> def trans(s):
        m = ''
        for i in s:
            if i == 'g':
                i = 'k'
                m += i
            elif i == 'k':
                i = 'g'
                m += i
            else:
                m += i
        return m

>>> print(trans('gluke'))
kluge

答案 3 :(得分:0)

你需要这样做:

text = 'gghghg didjf ekofrhhwehg'
text = text.replace("g", "k")
print text

答案 4 :(得分:0)

其他答案已经演示了如何替换字符。

要交换字符,您可以执行以下操作,因为_不会出现在字符串中:

text = 'gghghg didjf ekofrhhwehg'
text = text.replace("g", "_").replace("k", "g").replace("_", "k")
print text