#python
Как имея строку с цифрами и буквами создать цикл который будет перебирать его в обратном порядке? Задаем строку: avc3d Цикл выдает: avc3с, avc3b, avc3a, avc2z, avc2y, avc2x....
Ответы
Ответ 1
Например, вот так: from numpy import base_repr s = 'avc3d' for i in range(int(s, 36), 0, -1): print(base_repr(i, 36).lower()) Представляем строку как число в 36сс и проходим в обратном порядке уже по числам. Если не хотите использовать модуль numpy, можно воспользоваться функцией отсюда. def base36encode(number, alphabet='0123456789abcdefghijklmnopqrstuvwxyz'): """Converts an integer to a base36 string.""" if not isinstance(number, (int, long)): raise TypeError('number must be an integer') base36 = '' sign = '' if number < 0: sign = '-' number = -number if 0 <= number < len(alphabet): return sign + alphabet[number] while number != 0: number, i = divmod(number, len(alphabet)) base36 = alphabet[i] + base36 return sign + base36
Комментариев нет:
Отправить комментарий