前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >python提取字符串中数字

python提取字符串中数字

作者头像
用户7886150
修改2021-01-11 10:17:00
修改2021-01-11 10:17:00
2.7K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Python | 字符串rstrip

题目:【这是一个复杂问题的简化】如下是一个字符串列表,提取字符串中第二个数字,并判断是否大于1000,如果是,从列表中删除这一行。 

1000\t1002\n 

.....【省略】.... 

代码: 

<pre name="code" class="python">#coding: utf-8

oldStr = "1000\t1002\n"

newStr = oldStr

#匹配目标数字左侧字符串

t=newStr.index("\t")

newStr = newStr.lstrip(newStr[0:t])

newStr = newStr.lstrip("\t")

newStr = newStr.rstrip("\n")

if int(newStr)>1000:

    print 'ok'

else:

    print 'sorry' 

 #结果:ok 

接下来可继续后续删除操作。 

易错点1:对字符串进行strip()后,如果不赋值,字符串内容保持不变。 

>>> newStr.lstrip("\t")

'1002\n'

>>> newStr.rstrip("\n")

'\t1002' 

再举一例: 

>>> ss="124"

>>> ss[0]

'1'

>>> ss.lstrip(ss[0])

'24'

>>> ss[0]                #ss[0]保持不变

'1'

>>> ss=ss.lstrip(ss[0])        # 赋值之后ss获取新值

>>> ss

'24'

>>> ss[0]                #ss[0]随之改变

'2' 

易错点2:如果 

newStr = newStr.lstrip(newStr[0:t])结果为"

\t1002",改为newStr[0:t+1] 

newStr = newStr.lstrip(newStr[0:t+1]) 

理论上得到1002,事实上是2.原因strip函数用错。  

解决注释报错:如果文件里有非ASCII字符,需要在第一行或第二行指定编码声明:#coding: utf-8

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档