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)