如何从字符串的开头删除重复的字符

时间:2012-09-04 09:21:21

标签: python regex

我有一个人类输入的数字数组,在实际数字开始之前包含随机数量的零。 猜示例会说更多:

entry_1="0000005452508"
entry_2="02965054"
entry_3="5487864"

我需要在这些重复的零结束之后得到字符串,即第一个条目应该导致5452508。如果不是固定的数字位数。列表非常庞大,所以我需要一些好的和快速的工作。

任何想法都赞赏。

4 个答案:

答案 0 :(得分:12)

lstrip做你想做的事:

entry_1 = "0000005452508".lstrip("0")
entry_2 = "02965054".lstrip("0")
entry_3 = "5487864".lstrip("0")

答案 1 :(得分:3)

lstrip,正如@dav1d所建议的肯定是的方式。

使用正则表达式,可以使用以下内容来完成相同的操作:

> import re
> re.sub("^0+", "", "0000005452508")
"5452508"

答案 2 :(得分:1)

我会按照已经建议的那样使用.lstrip,但如果你真的想要一个正则表达式。

没有任何东西的前导零:

re.sub(r'^0*', '', entry_1)

答案 3 :(得分:1)

已经提供了很好的答案,但所有人都在创建新序列。要提供替代方案,因为您已指定列表很大并且复制可能是一个问题,您应该考虑使用itertools.dropwhile

  

只要谓词为真,就创建一个从迭代中删除元素的迭代器;之后,返回每个元素。

例如:

import itertools
itertools.dropwhile(lambda x: x == '0', entry_1)