簡體   English   中英

如何用范圍替換字符串中的字符?

[英]how do i replace a character in a string by range?

例如:

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

我需要替換'。' 使用''在最后7個字符中==>'www.google.com/blabla'

我努力了 :

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

但我得到這個錯誤:

IndexError:字符串索引超出范圍

通用的方法拆分 URL,替換點然后加入

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'

在一行中:

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

您需要更改if行,因為單個=用於賦值而不是比較:

if url[i] == '.':

請注意,當使用replace()您需要更新原始字符串( url ),因為replace()將返回一個新字符串,而不是更新現有字符串。

但是,我認為@Patrick Haugh的一行答案是更好的解決方案,不過我會修改如下(如果你總是使用谷歌地址):

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

感謝@Patrick指出我之前回答中的缺陷。


而不是使用range() ,只需使用列表理解和字符串索引:

url = 'www.google.com/bla.bla'
url = url[:15] + ''.join([c for c in url[15:] if c!= '.'])

說明。

  • url = :將url =的值重新分配給...
  • url[:15] :最后七個之前url所有字符...
  • + :加..
  • ''.join([c for c in url[15:] if c!= '.']) :字符串url的最后七個字符, 僅當值不是a時. 然后將字符列表連接成一個字符串。

修改后,網址的值為: 'www.google.com/blabla'

print("Hello World") #keywords such as and or as are still highlighted

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM