python从一串字符中提取数字,python在字符串中提取数字
这篇文章主要给大家介绍了关于如何利用大蟒提取字符串中数字,以及匹配指定字符串开头的数字和时间的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
目录
一、isdigit()函数二、过滤器()函数三、提取一段字符串中的数字四、匹配指定字符串开头的数字五、匹配时间,17:35:24六、匹配时间,20181011 15:28:39总结
一、isdigit()函数
isdigit()函数是检测输入字符串是否只由数字组成。如果字符串只包含数字则返回真实的否则返回错误。
dream=123456
print(dream.isdigit())
# 返回:正确
dream=123abc456
print(dream.isdigit())
# 返回:错误
梦=abcd
print(dream.isdigit())
# 返回:错误
二、filter() 函数
说明:过滤器()函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象;
如果要转换为列表,可以使用列表()来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回真实的或假的,最后将返回真实的的元素放到新列表中。
语法:
过滤器(函数,可迭代)
1、过滤出列表中的所有奇数:
定义是奇数(n):
返回n % 2==1
tmplist=filter(is_odd,[1,2,3,4,5,6,7,8,9,10])
newlist=list(tmplist)
打印(新列表)
2、过滤出列表中的所有偶数:
l=[范围(10)中x的x值]
打印(列表(过滤器(x : x % 2==0,l)))
3、过滤出1~100中平方根是整数的数:
导入数学
定义是_sqr(x):
return math.sqrt(x) % 1==0
tmplist=filter(is_sqr,range(1,101))
newlist=list(tmplist)
打印(新列表)
4、删除1-100中素数
L=范围(1,101)
def isprimer(n):
标志=1
对于范围(2,n):中的我
如果n % i==0:
标志=0
如果标志==0:
返回
打印(列表(过滤器(isprimer,L)))
5、去除空格和空值
定义not _ empty :
返回s和不锈钢带()
过滤器(not_empty,[A ,, B ,None, C , ])
6、高阶运用
def _奇数_iter():
n=1
而True:
n=n 2
产量
def _ not _除尽(n):
返回x : x % n0
定义质数():
产量2
it=_odd_iter()
ftr=filter(_not_divisible(2),it) #1
而True:
n=下一个(ftr ) #2
产量
ftr=filter(_not_divisible(n),ftr ) #3
对于素数中的n():
如果编号为100:
打印(现在: ,n)
else:
破裂
三、提取一段字符串中的数字
列表转字符串
number=[12 , 333 , 4]
数字_=""。加入(号码)#列表转字符串
打印(编号_) # 123334
甲=" .联接(列表(筛选器(str.isdigit, 123ab45 ))
打印(一份)
# 返回12345
b=列表(过滤器(字符串isdigit, 123ab45 ))
打印(二)
# 返回[1, 2, 3, 4, 5]
时间_=2019年年09月04日11:00
time_filter=filter(str.isdigit,time_)
打印(时间过滤器)#过滤器对象位于0x0000019358731BE0
print(type(time _ filter))# class filter
time _ list=list(time _ filter)#[ 2 , 0 , 1 , 9 , 0 , 4 , 1 , 0]
time_str=" " .join(time_list) #转为str 201909041100
time_int=int(time_str) #转为int 201909041100
利用正则表达式
进口是
str_=12今天333天气四不错
number=re.findall(\d ,str_) #输出结果为列表
打印(数字)
# 输出结果:[12, 333, 4]
四、匹配指定字符串开头的数字
例如下面的字符串:
tensorflow:Final最终最佳有效0 loss=0.20478513836860657 norm _ loss=0.767241849151384 roc=0.8262403011322021 pr=0.3946921525校准=0.9863265752792358率=0.0
提取校准=0.9863265752792358。
# 匹配"校准="后面的数字
pattern=re.compile(r (?=校准=)\d \?\d* )
pattern.findall(字符串)
# [0.9863265752792358]
五、匹配时间,17:35:24
string= warning :传感器流量: 2018 10 11 15:283:39初始化培训
pattern=re.compile(r \ d { 2 } : \ d { 2 } : \ d { 2 } )
pattern.findall(字符串)
# [15:28:39]
六、匹配时间,20181011 15:28:39
string= warning : sensor flow : 2018 10 11 15:28:39初始化培训
pattern=re.compile(r \ d { 4 } \ d { 2 } \ d { 2 } \ s \ d { 2 } : \ d { 2 } : \ d { 2 } )
pattern.findall(字符串)
# [20181011 15:28:39]
总结
这就是关于如何用python从字符串中提取数字的文章。有关python从字符串中提取数字的更多信息,请搜索流行的IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。