Предположим, что у меня есть строка, состоящая из х неизвестных символов. Как я могу получить char nr. 13 или char nr. х-14?
Как получить char из строки по индексу?
Ответ 1
Сначала убедитесь, что требуемое число действительный индекс для строки от начала или до конца, тогда вы можете просто использовать нотацию индекса массива.
используйте len(s)
, чтобы получить длину строки
>>> s = "python"
>>> s[3]
'h'
>>> s[6]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> s[0]
'p'
>>> s[-1]
'n'
>>> s[-6]
'p'
>>> s[-7]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>>
Ответ 2
In [1]: x = "anmxcjkwnekmjkldm!^%@(*)#[email protected]"
In [2]: len(x)
Out[2]: 45
Теперь, для положительных диапазонов индексов для x от 0 до 44 (т.е. длина - 1)
In [3]: x[0]
Out[3]: 'a'
In [4]: x[45]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
/home/<ipython console> in <module>()
IndexError: string index out of range
In [5]: x[44]
Out[5]: 's'
Для отрицательного индекса диапазон индексов от -1 до -45
In [6]: x[-1]
Out[6]: 's'
In [7]: x[-45]
Out[7]: 'a
Для отрицательного индекса отрицательный [длина -1], т.е. последнее действительное значение положительного индекса даст второй элемент списка, поскольку список будет прочитан в обратном порядке,
In [8]: x[-44]
Out[8]: 'n'
Другие, примеры примеров,
In [9]: x[1]
Out[9]: 'n'
In [10]: x[-9]
Out[10]: '7'
Ответ 3
Python.org имеет отличный раздел о строках здесь. Прокрутите вниз до места, где указано "нотация фрагмента".
Ответ 4
Еще одно рекомендуемое упражнение для понимания списков и индексов:
L = ['a', 'b', 'c']
for index, item in enumerate(L):
print index + '\n' + item
0
a
1
b
2
c
Ответ 5
Это должно дополнительно уточнить моменты:
a = int(raw_input('Enter the index'))
str1 = 'Example'
leng = len(str1)
if (a < (len-1)) and (a > (-len)):
print str1[a]
else:
print('Index overflow')
Вход 3 Выход m
Вход -3 Выход p