繁体   English   中英

从列表中的所有字符串中删除前导“0”

[英]Remove leading '0's from all strings in a list

我的代码

l=['99','08','096']
for i in l:
    if i.startswith('0'):
        i.replace('0','')
print(l)

输出

l=['99','08','096']

我只想从所有字符串中删除前导“0”:

l=['99','8','96']

您可以在列表理解中为此使用str.lstrip() - 从每个字符串中删除所有前导'0'

>>> l = ['99', '08', '096']
>>> [x.lstrip('0') for x in l]
['99', '8', '96']

这有一个额外的好处,即不从字符串中删除'0'实例,只从前面删除。

>>> l=['99', '08', '096', '0102']
>>> [x.lstrip('0') for x in l]
['99', '8', '96', '102']

如果我理解正确,您想从数组中删除以 0 开头的字符串,但从您显示的代码来看,您只是将字符串中的 0 替换为空。 i.replace('0','')

一种过滤方法是:

new_list = [el for el in l if not el.startswith('0')]

您可以通过使用 str.lstrip 使用列表理解来纠正您的字符串:

[e.lstrip('0') for e in l]

或者您可以使用 for 循环:

for i in range(len(l)):
    if l[i].startswith('0'):
        l[i] = l[i][1:]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM