2016-07-05 1 views
1

Предположим, что у меня есть эта строка:Как сделать строковые индексы круговой, когда индекс строки из диапазона

myString = 'abcdefghijklmnopqrstuvwxyz' 

Если я прошу MyString [26], я получить индекс строки об ошибке: вне диапазона. Действительны только myString [0] через myString [25].

Мой желаемый результат - попросить myString [26] и вернуть 'a', потому что я превысил строку на 1 и вернулся кругом вперед на 'a'. Как я могу это достичь?

ответ

5

Применение по модулю.

myString = 'abcdefghijklmnopqrstuvwxyz' 

def access_char(string, i): 
    return string[i % len(string)] 

print(access_char(myString, 57)) 
# >>> f 

Это также будет работать для любой другой последовательности типа данных (список, кортеж и т.д.)

4

Вам просто нужно сделать myString[<index> % len(myString)]. <index> - любое целое число, которое будет индексом.

Например:

myString[26 % len(myString)] 
>>> 'a' 
Смежные вопросы