Parece que puede encontrar una función de subcadena en Python.
Digamos que quiero generar los primeros 100 caracteres en una cadena, ¿cómo puedo hacer esto?
También quiero hacerlo de manera segura, lo que significa que si la cadena tiene 50 caracteres, no debería fallar.
Respuestas:
fuente
print 'foo'[:100]
(tenga en cuenta quelen('foo')
es 3, por lo que incluso cuandofoo[100]
no funciona, lo hace)Desde el tutorial de Python :
Entonces es seguro de usar
x[:100]
.fuente
Fácil:
fuente
Para responder a la preocupación de Philipp (en los comentarios), el corte también funciona bien para cadenas Unicode
Si desea ejecutar el código anterior como un script, coloque esta línea en la parte superior
Si su editor no guarda en utf-8, sustituya la codificación correcta
fuente
ς
yσ
son la misma letra :-)greek_alphabet
entonces :)El corte de matrices se realiza con
[first:last+1]
.Un truco que suelo usar mucho es indicar información adicional con puntos suspensivos. Entonces, si su campo tiene cien caracteres, usaría:
Y sí, sé
()
que en este caso es superfluo para el%
operador de formato, es solo mi estilo.fuente
La mayoría de los ejemplos anteriores generarán una excepción en caso de que su cadena no sea lo suficientemente larga.
Otro enfoque es utilizar
'yourstring'.ljust(100)[:100].strip()
.Esto le dará los primeros 100 caracteres. Es posible que obtenga una cadena más corta en caso de que los últimos caracteres de su cadena sean espacios.
fuente
Formateo de cadenas usando
%
es una excelente manera de manejar esto. Aquí hay unos ejemplos.El código de formato se
'%s'
convierte'12345'
en una cadena, pero ya es una cadena.'%.3s'
especifica usar solo los primeros tres caracteres.'%.7s'
dice usar los primeros siete caracteres, pero solo hay cinco. No hay problema.'%7s'
utiliza hasta siete caracteres, llenando los caracteres faltantes con espacios a la izquierda.'%-7s'
es lo mismo, excepto que se completan los caracteres que faltan a la derecha.'%5.3'
dice que use los primeros tres caracteres, pero llénelos con espacios a la izquierda para un total de cinco caracteres.Lo mismo excepto el relleno a la derecha.
¡También puede manejar múltiples argumentos!
Si necesita aún más flexibilidad, también
str.format()
está disponible. Aquí hay documentación para ambos.fuente
Entonces, si desea tomar solo el primer carácter 100, use
your_string[0:100]
oyour_string[:100]
Si desea tomar solo el carácter en la posición par, useyour_string[::2]
Los "valores predeterminados" para el inicio es 0, para el final de la cadena y para el paso - 1. Entonces cuando no proporcionas uno de sus y pones ':', usará su valor predeterminado.fuente