#python
#python
Вопрос:
У меня есть список:
my_list = ['0300', '0023', '0005', '000030']
Я хочу удалить предыдущие нули в каждом элементе string из списка. Итак, я хочу удалить 0 с левой стороны строки.
Вывод будет выглядеть следующим образом:
my_list = ['300', '23', '5', '30']
Я пробовал это:
for x in my_list:
x = re.sub(r'^0 ', "", x)
print my_list
Но, похоже, это не работает. Пожалуйста, помогите!
Комментарии:
1.
l = [a.lstrip("0") for a in l]
Ответ №1:
Вы можете использовать str.lstrip
следующим образом
print [item.lstrip('0') for item in l]
# ['300', '23', '5', '30']
Комментарии:
1. Работает как шарм.. Большое вам спасибо! 🙂
Ответ №2:
Попробуйте:
list = [str(int(el)) for el in list]
Редактировать: выберите другой ответ, я бы тоже предпочел его 🙂
Комментарии:
1. Нет, этого не произойдет, я только что протестировал это. Однако другое решение является лучшим: P. То, о чем вы думаете, — это восьмеричные литералы. Примеры: int(‘0300’) дает 300, int(0300) дает 192, int(0x300) дает 768. Кавычки имеют все значение.