Найти - Пользователи
Полная версия: Нужно получить последний ненулевой элемент в строке
Начало » Python для новичков » Нужно получить последний ненулевой элемент в строке
1
polin11
Есть строка из цифр, нужно получить последний ненулевой элемент
есть 2 варианта:
 1)
code = '120300' 
index= len(code) - [i for i, item in enumerate(list(code[::-1])) if item != '0'][0] - 1
print(index)
2) 
code = '120300'
for i, char in enumerate(code[::-1]):
    if char != '0':
        index = i
        break
index = len(code) - index - 1
print(index)
Кто может подсказать более элегантное решение?
rami
polin11
Есть строка из цифр, нужно получить последний ненулевой элемент
У вас есть строка? Так работайте с ней как со строкой:
 code = '120300'
print(code.rstrip('0')[-1])
py.user.next
Если общий вариант взять (не только для строки)
  
>>> def last_nonzero(s):
...     tup = tuple(i for i in s if i != '0')
...     return (tup and tup[-1]) or None
... 
>>> last_nonzero('')
>>> last_nonzero('0')
>>> last_nonzero('1')
'1'
>>> last_nonzero('120300')
'3'
>>> last_nonzero('1203')
'3'
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB