可能重复:
How to replace a string in a function with another string in Python?
我想输入任何类型字符的字符串,如果字符是字母,我想用“^”替换它并打印出来。
例如,如果我的输入为replace('text-here')
,我应该将输出设为"^^^^-^^^^"
。
我尝试过使用以下语句,但它只是输出我输入的内容。请帮忙!
def replace(string):
for x in range(len(string)):
string.replace(string[x],"^")
print(string)
我是python的新手,并不知道复杂的东西。请给我简单易懂的答案。谢谢!
答案 0 :(得分:3)
>>> text = 'text-here'
>>> ''.join('^' if c.isalpha() else c for c in text)
'^^^^-^^^^'
我认为这很容易理解,但以下是代码,它可以更简单地显示它的作用:
>>> def replace(text):
new_text = ''
for c in text:
if c.isalpha():
new_text += '^'
else:
new_text += c
return new_text
>>> replace(text)
'^^^^-^^^^'
答案 1 :(得分:2)
您可以使用Python's Regular Expressions library。
像这样,
import re
re.sub('\w', '^', 'text-here')
# Outputs: "^^^^-^^^^"
答案 2 :(得分:1)
那是因为字符串是不可变的。 string.replace(string [x],“^”)返回一个新对象。
Modify
string.replace(string[x],"^")
to
string = string.replace(string[x],"^")
它将按预期工作。
答案 3 :(得分:0)
现在您的问题是“但它只打印我的输入”,我想告诉您方法str.replace
将返回一个新字符串而不是替换字符串到位。
>>> a = "foo"
>>> a.replace("foo","bar")
'bar'
>>> a
'foo'
所以你需要做string = string.replace(...)