3 回答

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
嘗試這個(gè) -
a = "20.00.0.11"
t = a.split('.') #breaks the item into token
t[0]+'.'+''.join(t[1:]) #join them back with a single .
'20.00011'
如果萬(wàn)一你有所有的可能性,你可能有多個(gè) .'s 或一個(gè)或沒(méi)有 .'s 那么你可以使用以下功能 -
a = "20.00.0.11"
b = "20.000"
c = "20000"
def fix_dots(a):
t = a.split('.')
if len(t)>1:
return t[0]+'.'+''.join(t[1:])
else:
return t[0]
print(fix_dots(a))
#Output - '20.00011'
print(fix_dots(b))
#Output - '20.000'
print(fix_dots(c))
#Output - '20000'
解決此問(wèn)題的列表理解方法是使用查找第一個(gè)點(diǎn)的位置,然后使用 OR 條件保留該點(diǎn)并忽略其他點(diǎn)。
a = "20.00.0.11"
def fix_dot2(a):
return ''.join([i[1] for i in enumerate(a) if i[0]==a.find('.') or i[1]!='.'])
print(fix_dot2(a))
'20.00011'

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
"".join("20.00.0.11".replace(".","!",1).split(".")).replace("!",".")
或者:
string = "20.00.0.11"
dot = string.find(".")
"".join([x for (i, x) in enumerate(string) if (x != ".") | (i==dot)])

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
另一種解決方案是按“.”拆分,并確保在列表的第二個(gè)索引處恰好添加一個(gè)。
a = "20.00.0.11"
lst = a.split('.')
lst.insert(1, '.')
a_replaced = ''.join(lst)
print(a_replaced)
>>> "20.00011"
使用此版本將為您提供更壓縮的一行代碼:
a = "20.00.0.11"
a_replaced = ''.join(a.split('.').insert(1, '.'))
此解決方案假定輸入的第一個(gè)期間是您要保留的期間。
此外,如果輸入中沒(méi)有句點(diǎn),則會(huì)在字符串末尾添加一個(gè)句點(diǎn)。如果你不想要這個(gè),你需要添加一個(gè) if check。
添加回答
舉報(bào)