Python 更改列表中的字符
下面是我相对简单的代码:Python 更改列表中的字符,python,python-3.x,url,flask,arguments,Python,Python 3.x,Url,Flask,Arguments,下面是我相对简单的代码: @app.route("/[<string:pfade>]") def testaufruf(pfade): s=list(pfade) part = [i for i,x in enumerate(s) if x=="$"] print(part) s[part]="\\" print(part) 他们将$所在的位置返回给我,但替换$的第二部分不起作用。我确实找了很多,但找不到解决这个问题的办法 提前感谢您的帮助。
@app.route("/[<string:pfade>]")
def testaufruf(pfade):
s=list(pfade)
part = [i for i,x in enumerate(s) if x=="$"]
print(part)
s[part]="\\"
print(part)
他们将$
所在的位置返回给我,但替换$
的第二部分不起作用。我确实找了很多,但找不到解决这个问题的办法
提前感谢您的帮助。字符串有一个
replace
方法:
part = pfade.replace('$', '\\')
注意,
\
是为了转义而重复的。因此这是一个非常简单的修复:
而不是使用part=[i代表i,如果x==“$”],则在枚举中使用x]
我刚刚使用:part=s.index(“$”,0)
然后,
s[part]=“\\”
将$
替换为“\”
此行将返回一个整数列表
part = [i for i,x in enumerate(s) if x=="$"]
如果您只是试图用列表索引s
,您将面临以下错误
TypeError: list indices must be integers or slices, not list.
要解决这个问题:
parts = [i for i,x in enumerate(s) if x=="$"]
for part in parts:
s[part] = '\\'
print(s)
那就更容易了,非常感谢!不再需要列表请注意,如果您有多个带有
$
parts = [i for i,x in enumerate(s) if x=="$"]
for part in parts:
s[part] = '\\'
print(s)