繁体   English   中英

在python中交换特定字符

[英]Swap specific chars in python

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

例如:

text = 'gghghg didjf ekofrhhwehg'

我想将文本中的所有 'g' 替换为 'k'。

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

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

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

print text

它不会改变输出

你可以简单地使用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 s 与k s 交换,反之亦然,那么您应该使用str.translate ,就像这样

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

看到如何ggluke改为kkgluke变更为g ,在结果中。


关于您的编辑,Python 字符串是不可变的。 所以一旦你创建了一个 String 对象,你就永远不能改变它的值。 你只需要创建一个新的。 因此,将text.replace的结果分配回text ,就像这样

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

只需使用替换

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

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

Out[2]: 'kkhkhk didjf ekofrhhwehk'

您也可以使用内置工具。

>>> 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

你需要这样做:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM