需要幫助的人,
s = "I waited 60 minutes. I cannot wait any longer. My home is 20 miles away."
如何提取旁邊有分鐘的數字。然后將數字除以 2 并得到下面的字串作為輸出,
“我只等了 30 分鐘。我不能再等了。我的家在 20 英里之外。”
“60 分鐘”應改為“僅 30 分鐘”。可以有任何數字而不是 60。
uj5u.com熱心網友回復:
如果可以,請將其宣告為f“I waited {myTime (60)} minutes. I cannot wait any longer. My home is 20 miles away.”. 然后您可以簡單地更改變數 integer myTime。
如果您真的必須從原始輸入中獲??取它,我建議您先拆分字串。然后你可以遍歷每個單詞并檢查是否int(word)是一個數字。
uj5u.com熱心網友回復:
正則運算式替換函式最適合該任務
一條線
import re
s = "I waited 60 minutes. I cannot wait any longer. My home is 20 miles away."
print(re.sub("(\d )( minutes)",lambda m:str(int(m.group(1))//2) m.group(2),s))
印刷:
I waited 30 minutes. I cannot wait any longer. My home is 20 miles away.
該lambda函式在輸入中輸入正則運算式組,它“只是”將第一個引數轉換為整數,將其除以 2,然后轉換回字串,并重建時間字串。
uj5u.com熱心網友回復:
使用 for 回圈的另一種方法,
def isnum(s):
res= False
try:
n = int(s)
res = True
except:
pass
return res
s = "I waited 60 minutes. I cannot wait any longer. My home is 20 miles away."
j = -1
s_list = s.split(' ')
res = ""
for i in s_list:
j = 1
if isnum(i):
if s_list[j 1] in ['minute', 'minute.', 'minutes', 'minutes.']:
i = str(int((int(i)/2)))
res = i " "
print(res)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/377120.html
上一篇:熊貓:只替換單詞而不是整個句子
