0
我已經在stackoverflow和google上搜索了很多關於它的問題。但是沒有一個解決了我的問題。使用列表範圍的Python格式化字符串
比方說,我有一個不規則長度的字符串(如電話號碼或特定和領土文檔),例如:
docA="A123B456"
docB="A123B456CD"
docC="6CD"
我書面方式一個函數來打印文檔。但他們沒有明確的模式,我的方法是使用最常見模式的默認變量,並向程序員提供角落案件的責任。 如:
def printDoc(text, pattern="{}{}{}{}#{}{}{}-{}")
print(pattern.format(*text))
但是,如果有一種方法來簡化像
def printDoc(text, pattern="{0:3}#{4:-1}-{-1}")
print(pattern.format(*text))
然後,該圖形我可以用它喜歡它會更乾淨和明確:
printDoc(docA)
printDoc(docB)
printDoc(docC, "{0:1}-{2}")
但這不是一個有效的語法。有一種正確的做法嗎?
如果我的方法是錯誤的,我將不勝感激知道這樣做的更好方法。
感謝
感謝您對此事發表評論,但我不能使用eval =( –
@EricLopes你可以仍然使用相同的原則與'regex',抓住一個或兩個號碼,然後使用這些索引/片'text'。 – niemmi