python从一串字符中提取数字,python在字符串中提取数字

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: