麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

在Python中實現替換字符串中的子串的示例

2020-02-15 23:28:57
字體:
來源:轉載
供稿:網友

假如有個任務: 給定一個字符串,通過查詢字典,來替換給定字符中的變量。如果使用通常的方法:

>>> "This is a %(var)s" % {"var":"dog"}'This is a dog'>>>

其實可以使用string.Template類來實現上面的替換

>>> from string import Template>>> words = Template("This is $var")>>> print(words.substitute({"var": "dog"})) # 通過字典的方式來傳參This is dog>>> print(words.substitute(var="dog"))   # 通過關鍵字方式來傳參This is dog>>>

在創建Template實例時,在字符串格式中,可以使用兩個美元符來代替$,還可以用${}將 變量擴起來,這樣的話,變量后面還可以接其他字符或數字,這個使用方式很像Shell或者Perl里面的語言。下面以letter模板來示例一下:

>>> from string import Template>>> letter = """Dear $customer,... I hope you are having a great time!... If you do not find Room $room to your satisfaction, let us know.... Please accept this $$5 coupon....     Sincerely,...     $manager,...     ${name}Inn""">>> template = Template(letter)>>> letter_dict = {"name": "Sleepy", "customer": "Fred Smith", "manager": "Tom Smith", "room": 308}>>> print(template.substitute(letter_dict))Dear Fred Smith,I hope you are having a great time!If you do not find Room 308 to your satisfaction, let us know.Please accept this $5 coupon.    Sincerely,    Tom Smith,    SleepyInn>>>

有時候,為了給substitute準備一個字典做參數,最簡單的方法是設定一些本地變量,然后將這些變量交給local()(此函數創建一個字典,字典中的key就是本地變量,本地變量的值通過key來訪問)。

>>> locals()   # 剛進入時,沒有其他變量{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}>>> name = "Alice" # 創建本地變量name >>> age = 18   # 創建本地變量age>>> locals()   # 再執行locals()函數就可以看到name, age的鍵值隊{'name': 'Alice', '__builtins__': <module '__builtin__' (built-in)>, 'age': 18, '__package__': None, '__name__': '__mai__', '__doc__': None}>>> locals()["name"] # 通過鍵name來獲取值'Alice'>>> locals()["age"] # 通過鍵age來獲取值18>>>

有了上面的例子打底來看一個示例:

>>> from string import Template>>> msg = Template("The square of $number is $square")>>> for number in range(10):...  square = number * number...  print msg.substitute(locals())...The square of 0 is 0The square of 1 is 1The square of 2 is 4The square of 3 is 9

另外一種方法是使用關鍵字參數語法而非字典,直接將值傳遞給substitute。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: lutube成人福利在线观看 | 成人免费福利网站 | 全黄裸片武则天艳史 | 日日草夜夜 | av电影免费看 | 蜜桃传免费看片www 一本色道精品久久一区二区三区 | 久久亚洲国产精品 | 12av毛片| 一级裸体视频 | 娇喘在线| 国产精品久久av | 法国性xxx精品hd专区 | 精品久久久久久亚洲精品 | 亚洲资源在线播放 | 久久久www成人免费毛片 | 国产亚洲精品久久午夜玫瑰园 | 免费成人 | 国产一区二区三区四区五区精品 | 久久人人爽人人爽人人片av高清 | 亚洲一区二区不卡视频 | 黄色片视频在线观看 | 色婷婷久久一区二区 | 久久国产成人午夜av浪潮 | 美女被免费网站在线软件 | 91精品观看91久久久久久国产 | 91亚洲免费视频 | 香蕉视频h| 久久免费观看一级毛片 | 免费观看一区二区三区视频 | 天天透天天狠天天爱综合97 | 日产精品久久久一区二区福利 | 成人三级电影网站 | 成人午夜在线免费观看 | 成人免费毛片片v | v11av在线视频成人 | 欧美不卡三区 | 精品一区二区免费 | 久久精品av | 在线视频a | www国产成人免费观看视频,深夜成人网 | 国产影院在线观看 |