首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从python中的字符串中获得数字?

如何从python中的字符串中获得数字?
EN

Stack Overflow用户
提问于 2021-12-08 10:13:34
回答 3查看 80关注 0票数 -2

需要帮助伙计们

代码语言:javascript
复制
s = "I waited 60 minutes. I cannot wait any longer. My home is 20 miles away."

如何提取旁边有分钟数的数字。然后用2除以这个数字,得到下面的字符串作为输出,

“我只等了30分钟。我不能再等了。我的家在20英里之外。“

“60分钟”应改为“只有30分钟”。而不是60,可能有任何数字。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-08 10:43:54

另一个使用for循环的方法,

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2021-12-08 10:20:20

正则表达式替换函数最适合该任务。

单行

代码语言:javascript
复制
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))

指纹:

代码语言:javascript
复制
I waited 30 minutes. I cannot wait any longer. My home is 20 miles away.

lambda函数输入的是regex组,它“只是”将第一个参数转换为整数,将其除以2,然后将其转换回字符串,并重新构建时间字符串。

票数 1
EN

Stack Overflow用户

发布于 2021-12-08 10:18:04

如果可以的话,将其声明为f“I waited {myTime (60)} minutes. I cannot wait any longer. My home is 20 miles away.”。然后您可以简单地更改变量整数myTime

如果您真的需要从原始输入中提取它,我建议首先拆分字符串。然后,您可以遍历每个单词,并检查int(word)是否是一个数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70273255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档