情况是我们分别有4,3,4,3。如果我们只想把指数20的4修正为3.5。第三个参数应该是什么?

name = "Land grade 4 year 3 4 members at building 4"
print(name.replace(("4","3.5",?))

我想要的结果->“4号楼土地等级4年3.5级成员”

1 回复  |  直到 2 年前
    1
  •  0
  •   Jean-François Fabre    2 年前

    切片字符串并仅在您感兴趣的切片上替换,重建字符串。

    >>> s = "Land grade 4 year 3 4 members at building 4"
    >>> s[0:20]+s[20:24].replace("4","3.5")+s[24:]
    'Land grade 4 year 3 3.5 members at building 4'
    

    如果只更换一个,可能会稍微好一点,这样可以避免字符串切片:

    >>> s[0:20]+s[20:].replace("4","3.5",1)
    'Land grade 4 year 3 3.5 members at building 4'
    

    但是如果你确切地知道要替换的数字在哪里,那可能是因为你可以用一个模板字符串来替换。

    s = "Land grade 4 year 3 {} members at building 4"
    s.format(3.5)