[英]How to Swap Chars like a byte-swap but with in a String with 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
看到如何g
在gluke
改为k
和k
在gluke
变更为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.