例如:
url = 'www.google.com/bla.bla'
我需要替换'。'与''在最后7个字符 ==> 'www.google.com/blabla'
我试过了:
for i in range(15,22):
if url[i]=='.':
url = url.replace('.', "")
但是我收到了这个错误:
IndexError:字符串索引超出范围
答案 0 :(得分:6)
更多通用方法将拆分网址,替换点,然后加入:
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'
答案 1 :(得分:4)
在一行中:
url = url[:-7] + (url[-7:].replace('.', ''))
答案 2 :(得分:3)
您需要更改if
行,因为单个=
用于分配而非比较:
if url[i] == '.':
然后请注意,在使用replace()
时,您需要更新原始字符串(url
),因为replace()
将返回一个新字符串,而不是更新现有字符串。
但是,我认为 @Patrick Haugh的一行答案是更好的解决方案,不过我会修改如下(如果你总是使用谷歌地址):
url = url[:15] + url[15:].replace('.', '')
答案 3 :(得分:0)
感谢@Patrick指出我之前回答中的缺陷。
不使用range()
,而只使用列表理解和字符串索引:
url = 'www.google.com/bla.bla'
url = url[:15] + ''.join([c for c in url[15:] if c!= '.'])
解释
url =
:将网址的值重新分配给... url[:15]
:最后七个之前url
中的所有字符...... +
:加上.. ''.join([c for c in url[15:] if c!= '.'])
:字符串url
中的最后七个字符,仅当值不是.
时。然后将字符列表连接成一个字符串。修改后,网址的值为:'www.google.com/blabla'
print("Hello World") #keywords such as and or as are still highlighted