我有一个人工输入的数字数组,其中包含在实际数字开始之前随机数量的零。猜测示例会说更多:
entry_1="0000005452508"
entry_2="02965054"
entry_3="5487864"
我需要在这些重复的零结束后获取字符串,即第一个条目应导致 5452508。如果不固定,则为位数。列表非常庞大,所以我需要一些好的和快速的东西才能在这里工作。
任何想法表示赞赏。
lstrip
做你想做的事:
entry_1 = "0000005452508".lstrip("0")
entry_2 = "02965054".lstrip("0")
entry_3 = "5487864".lstrip("0")
lstrip
,正如@dav1d所建议的那样,绝对是要走的路。
使用正则表达式,您可以使用以下方法来完成相同的操作:
> import re
> re.sub("^0+", "", "0000005452508")
"5452508"
我会.lstrip
按照已经建议的那样去,但如果你真的想要一个正则表达式。
没有任何内容的子前导零:
re.sub(r'^0*', '', entry_1)
已经提供了很好的答案,但都在创建一个新的序列。为了提供替代方案,由于您已指定您的列表很大,因此复制可能是一个问题,您应该考虑使用itertools.dropwhile
:
制作一个迭代器,只要谓词为真,它就会从可迭代对象中删除元素;之后,返回每个元素。
例如:
import itertools
itertools.dropwhile(lambda x: x == '0', entry_1)