Удалить начальные 0 из всех строк в списке - PullRequest
0 голосов
/ 11 февраля 2020

Мой код

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']

Ответы [ 3 ]

2 голосов
/ 11 февраля 2020

Вы можете использовать str.lstrip() для этого в понимании списка - чтобы удалить все ведущие '0' s из каждой строки.

>>> 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']
1 голос
/ 11 февраля 2020

Если я вас правильно понял, вы хотите удалить строку из массива, если она начинается с 0, но из кода, который вы показали, вы просто заменяете 0 в строке ничем. i.replace('0','')

один из способов отфильтровать это:

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

0 голосов
/ 11 февраля 2020

вы можете использовать списки для исправления ваших строк, используя str.lstrip:

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

или вы можете использовать для l oop:

for i in range(len(l)):
    if l[i].startswith('0'):
        l[i] = l[i][1:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...