1

string在 Python 中有一个,例如;

'00000001890573'

我想提取1890573(从第一个非零字符到字符串中的最后一个字符)。

我试着这样分裂; '00000001890573'.split('0')..它给了我['', '', '', '', '', '', '', '189', '573']

但这不是我想要的!!因为如果我结合最后两个字符串,我不会得到1890573.

4

4 回答 4

5

您可以使用strip()内置方法。

st = '00000001890573'
st.lstrip('0')
于 2020-12-29T00:28:31.360 回答
1

完成此操作的最简单方法是将字符串转换为整数,对其进行四舍五入,然后将其转换回字符串,如下所示:

string = "00000001890573"
answer = round(int(string))
answer = str(answer)

但是,这仅在它是整数时才有效,就好像它不是小数位将被截断并且数字将四舍五入到最接近的整数一样。

如果您还需要它来处理小数,一个可能的答案是使用 for 循环,尽管如果您执行很多循​​环,这可能会变得低效:

string = "00000001890573"
for i in range(len(string)):
     if(string[i] != "0"):
          string = string[i:len(string)]
          break

我在 3.7 中测试了这两种解决方案,据我所知,它应该适用于所有版本的 Python。

希望这有帮助!

于 2020-12-29T00:37:48.627 回答
1

另一种方法是使用 Pythonre模块:

re.search('[1-9].*$', '00000001890573')

这会找到从 1 到 9 的第一个数字,然后包括字符串的其余部分,直到行尾。

于 2020-12-29T00:31:04.950 回答
1

我想我明白了!!

int('00000001890573')
于 2020-12-29T00:28:49.327 回答