我有一个人类输入的数字数组,在实际数字开始之前包含随机数量的零。 猜示例会说更多:
entry_1="0000005452508"
entry_2="02965054"
entry_3="5487864"
我需要在这些重复的零结束之后得到字符串,即第一个条目应该导致5452508。如果不是固定的数字位数。列表非常庞大,所以我需要一些好的和快速的工作。
任何想法都赞赏。
答案 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)