【问题标题】:Change character in list Python Flask更改列表 Python Flask 中的字符
【发布时间】:2019-01-23 01:20:11
【问题描述】:

所以这是我相对简单的代码:

@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)

我的问题是我想通过 127.0.0.1:5000/[Test$path1] 之类的东西

现在我将这个Test$path1 列在一个列表中,并希望用\ 替换每个$

这些行有效:

s=list(pfade)

part = [i for i,x in enumerate(s) if x=="$"]

print(part)

他们将$ 所在的位置返回给我,但替换$ 的第二部分不起作用。我确实搜索了很多,但找不到解决这个问题的方法。

提前感谢您的帮助。

【问题讨论】:

    标签: python python-3.x url flask arguments


    【解决方案1】:

    字符串有一个replace 方法:

    part = pfade.replace('$', '\\')
    

    请注意 \ 重复用于转义。

    【讨论】:

    • 那就更简单了,非常感谢!不再需要列表
    【解决方案2】:

    所以这是一个非常简单的修复:

    而不是使用part = [i for i,x in enumerate(s) if x=="$"]

    我刚刚用过:part = s.index("$", 0)

    s[part] = "\\" 替换$"\"

    【讨论】:

    • 请注意,如果您有多个 $ 索引,这将不起作用
    【解决方案3】:

    这一行将返回一个整数列表

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 2023-03-16
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多