如何在Python中交换字符串中的字符?
例如:
text = 'gghghg didjf ekofrhhwehg'
我想交换所有的''在' k'的文本中。
我会使用ord()
和chr()
函数吗?
更新: 当我运行此代码时:
text = 'gghghg didjf ekofrhhwehg'
text.replace("g", "k")
print text
它不会改变输出
答案 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
中的k
和gluke
中的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