题目:【这是一个复杂问题的简化】如下是一个字符串列表,提取字符串中第二个数字,并判断是否大于1000,如果是,从列表中删除这一行。
1000\t1002\n
.....【省略】....
代码:
<pre name="code" class="python">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[0:t]改为newStr[0:t+1],则无法得到1002,而是002.原因待查。
版权声明:欢迎转载,转载请注明出处http://blog.csdn.net/ztf312/
原文地址:http://blog.csdn.net/ztf312/article/details/47345289