91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-18 13:24:33 來源:腳本之家 閱讀:135 作者:杰瑞26 欄目:開發技術

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

>>> "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 0
The square of 1 is 1
The square of 2 is 4
The square of 3 is 9

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

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

甚至可以同時傳遞字典和關鍵字

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

為了防止字典的條目和關鍵字參數顯示傳遞的值發生沖突,關鍵字參數優先,比如:

>>> from string import Template
>>> msg = Template("It is $adj $msg")
>>> adj = "interesting"
>>> print(msg.substitute(locals(), msg="message"))
It is interesting message
 

以上這篇在Python中實現替換字符串中的子串的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

且末县| 白山市| 永泰县| 吉首市| 枣强县| 壶关县| 清河县| 江华| 平塘县| 囊谦县| 郓城县| 泰兴市| 舒兰市| 固安县| 宜宾县| 都昌县| 库车县| 武宁县| 潼南县| 承德县| 新邵县| 内江市| 涿州市| 新昌县| 黎平县| 乌苏市| 古交市| 邹城市| 金塔县| 米泉市| 平利县| 遵义县| 昆明市| 湛江市| 新郑市| 伊春市| 天长市| 旅游| 岫岩| 南宁市| 泰和县|