如何按范围替换字符串中的字符?

2024-04-18 01:03:21 发布

您现在位置:Python中文网/ 问答频道 /正文

例如:

url = 'www.google.com/bla.bla'

我需要在最后7个字符中将“.”替换为“” ==>;'www.google.com/blabla'

我试过:

for i in range(15,22):
   if url[i]=='.':
       url = url.replace('.', "")

但我有个错误:

IndexError: string index out of range


Tags: ingtcomurlforifwww错误
3条回答

在一行中:

url = url[:-7] + (url[-7:].replace('.', ''))

您需要更改if行,因为单个=用于赋值而不是比较:

if url[i] == '.':

请注意,使用replace()时,需要更新原始字符串(url),因为replace()将返回新字符串,而不是更新现有字符串。你知道吗

不过,我认为@Patrick Haugh的单行答案是更好的解决方案,不过我会修改如下(如果你总是使用google地址):

url = url[:15] + url[15:].replace('.', '')

一种更通用的方法是拆分URL,替换dot,然后加入:

In [1]: url = 'www.google.com/bla.bla'

In [2]: s = url.split("/")

In [3]: s[1] = s[1].replace(".", "")

In [4]: "/".join(s)
Out[4]: 'www.google.com/blabla'

相关问题 更多 >

    热门问题