Siguiendo el enfoque de la entrada anterior, podemos discernir que nunca realizamos un cambio real en el string original con ninguna de las operaciones que corrimos sobre el. Cada operacion sobre el objeto string siempre va a devolver un nuevo string, porque en python, el tipo de dato string es inmutable.
Esto significa que no pueden ser cambiados en el transcurso del programa , por ejemplo, no podemos cambiar un string asignandole otro valor a su indice, pero podemos crear otro string y asignarle el mismo nombre, mas tarde veremos como python crea y limpia objetos al vuelo , por lo tanto, no es tan ineficiente crear strings a partir de otros strings.
Ejemplo :
>> S
'Spam'
>>> S[0]=Z # No funcionara, ya que el objeto es inmutable.
\\ Insultos por el error
>>> S = 'z' + S [1:] # aqui creamos un nuevo objeto, parece una boludez sumar otro objeto a este objeto, pero solamente asi se ejecutaria y quedaria esto
>>> S
'zpam'
Despues de esta insolente explicacion, sabemos que en python un objeto es clasificado como inmutable o no, por lo tanto en terminos de tipos de datos generales, los numeros, strings y tuplas sonn inmutables, en acambio las listas y diccionarios si lo son ( podemos manipularlos realmente ) , uno pensara cual es el proposito de ser inmutable ? Pues, no lo hay.
Na. La inmutabilidad provee la constancia del objeto durante todo el transcurso del programa.
Metodos Especificos
Cada operacion sobre un string que vimos en las entradas anteriores no se van muy lejos del concepto de secuencias. Y como los strings no son las unicas secuencias en python, tambien podemos aplicar los mismos metodos (no todos ) a las listas y tuplas. No esta de mas destacar que tanto los strings como otros objetos tienen metodos . Que no son mas que funciones disponibles para ese objeto.
Por ejemplo :
El metodo find es una operacion basica de busqueda en un string ( retorna el offset del substring del string ) y el metodo replace realiza cambios y reemplazos de strings .
Ejemplo :
>>>S.find ('pa') #busca el offset del substring
>> 1
>>> S
>>'Spam'
>>> S.replace ('pa','XYZ') #Reemplaza un substring con otro
'SXYZm'
>>>S
'Spam'
Asi que, despues de ver esto, notamos que no cambiamos nunca el string original, pero si creamos un nuevo string como resultado. Tenemos que hacerlo si o si de esta forma porque los objetos strings son inmutables.
Despues tenemos otros metodos para los objetos strings como :
>>> line ='aaa,bbb,ccc,ddd' #String
>>> line.split (',') # Separa los strings por la coma
['aaa','bbb','ccc','ddd']
>>>S = 'Spam'
>>> S.upper ( ) # Coversion a mayuscula
'SPAM'
>>>S.isalplha ( )# Chequea el contenido del string.
Asi tenemos muchos mas metodos para este tipo de objetos
Para saber mas metodos , consulten la pagina oficial de python http://docs.python.org/2/library/functions.html#
No hay comentarios:
Publicar un comentario