Digamos que tengo una cadena que consta de x caracteres desconocidos. ¿Cómo podría obtener Char Nr? 13 o char nr. x-14?¿Cómo obtener char de cadena por índice?
Respuesta
Primero asegúrese de que el número requerido es un índice válido para la cadena desde el principio o el final, luego puede simplemente usar la notación del subíndice de matriz. uso len(s)
llegar longitud de la cadena
>>> 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
>>>
In [1]: x = "anmxcjkwnekmjkldm!^%@(*)#[email protected]"
In [2]: len(x)
Out[2]: 45
Ahora, por índice positivo rangos de x es de 0 a 44 (es decir, longitud - 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'
Para índice negativo, índice varía de -1 a -45
In [6]: x[-1]
Out[6]: 's'
In [7]: x[-45]
Out[7]: 'a
Para índice negativo, negativo [longitud -1] es decir, el último val válido ue de índice positivo dará segundo elemento de la lista como la lista se lee en orden inverso,
In [8]: x[-44]
Out[8]: 'n'
Otros, ejemplos de Index,
In [9]: x[1]
Out[9]: 'n'
In [10]: x[-9]
Out[10]: '7'
Esto debería aclarar aún más el puntos:
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')
Entrada 3 Salida m
Entrada -3 salida P
Otra exersice recomendado para la comprensión de las listas y los índices:
L = ['a', 'b', 'c']
for index, item in enumerate(L):
print index + '\n' + item
0
a
1
b
2
c
Python.org tiene una excelente sección sobre cuerdas here. Desplácese hacia abajo hasta donde dice "notación de división".
Las respuestas anteriores cubren aproximadamente ASCII character
en un cierto índice.
Está un poco molesto para conseguir un Unicode character
en un determinado índice en Python 2.
Por ejemplo, la s = '한국中国にっぽん'
que es <type 'str'>
,
__getitem__
, por ejemplo, s[i]
, no se llevan a donde tu deseas Escupirá algo como �
. (Muchos caracteres Unicode son más de 1 byte, pero __getitem__
en Python 2 se incrementa en 1 byte.)
En este caso Python 2, se puede resolver el problema mediante la decodificación:
s = '한국中国にっぽん'
s = s.decode('utf-8')
for i in range(len(s)):
print s[i]
- 1. Obtener caracteres de cadena por índice - Java
- 2. Encuentra el índice de un char en una cadena?
- 3. ¿Reemplazar un char en un índice dado en una cadena?
- 4. python - encontrar char en cadena - ¿puedo obtener todos los índices?
- 5. Cómo obtener presionado char de System.Windows.Input.KeyEventArgs?
- 6. Enum C++ Obtener por índice
- 7. Java HashMap: ¿Cómo obtener una clave y valor por índice?
- 8. Cadena Unicode eliminar char de la cadena
- 9. Diferencia entre char a [] = "cadena"; char * p = "cadena";
- 10. Convertir cadena a char
- 11. Cadena MySQL último índice de
- 12. Cómo obtener un hijo de PHP DOMDocument por índice
- 13. ¿Cómo obtener submapas de LinkedHashMap por elemento índice?
- 14. cómo obtener la clave de OrderedDictionary en C# por índice?
- 15. ¿Cómo obtener la longitud de char **?
- 16. En Java, ¿cómo se convierte una Cadena en un char o un char en una Cadena?
- 17. Obtener Char de la clave
- 18. Cadena anterior último índice
- 19. Obtener scancode de teclado de char
- 20. Conversión preferida de char (no char *) a std :: cadena
- 21. cadena de carbón en el índice X
- 22. Cómo concatenar char y cadena en iPhone?
- 23. ¿Cómo obtener elemento hijo por índice en Jquery?
- 24. puntero char * de cadena en C#
- 25. ¿Cómo cambiar 1 char en la cadena?
- 26. Python eliminar las partes de la cadena por el índice
- 27. Obtener el char en Control.KeyDown?
- 28. NSMutableArray - Obtener matrices índice entero buscando con una cadena
- 29. Para una columna char/varchar/text, ¿por qué un índice para esa columna agilizará la búsqueda?
- 30. ¿Cómo obtener los dígitos de un número sin convertirlo en una matriz de cadena/char?
Puede pasar enteros negativos –
@AviramSegal Gracias por la corrección, sí podemos, pero también deben estar en los límites de la longitud de la cuerda. – DhruvPathak
después de su edición es la mejor respuesta, votó en lugar de hacia abajo :) –