Форум сайта python.su
0
Есть строка из цифр, нужно получить последний ненулевой элемент
есть 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)
Отредактировано polin11 (Ноя. 11, 2018 20:07:19)
Офлайн
72
polin11У вас есть строка? Так работайте с ней как со строкой:
Есть строка из цифр, нужно получить последний ненулевой элемент
code = '120300' print(code.rstrip('0')[-1])
Офлайн
857
Если общий вариант взять (не только для строки)
>>> 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' >>>
Отредактировано py.user.next (Ноя. 12, 2018 00:34:27)
Офлайн