2.1.5.4 Tipos secuenciales mutables

Los objetos lista tienen operaciones adicionales que permiten la modificación directa del objeto. Estas operaciones estarán soportadas también por otros tipos de secuencia mutables (cuando se añadan al lenguaje). Las cadenas y las tuplas son tipos secuenciales inmutables; dichos objetos no pueden ser modificados una vez creados. Se definen las siguientes operaciones sobre tipos secuenciales mutables (x es un objeto arbitrario):

Operación  Resultado  Notas 
s[i] = x el elemento i de s se sustituye por x  
s[i:j] = t el corte de s desde i hasta j se sustituye por t  
del s[i:j] como s[i:j] = []  
s.append(x) como s[len(s):len(s)] = [x] (1)
s.extend(x) como s[len(s):len(s)] = x (2)
s.count(x) el número de valores de i para los que s[i] == x  
s.index(x) el mínimo valor de i tal que s[i] == x (3)
s.insert(i, x) como s[i:i] = [x] if i >= 0  
s.pop([i]) como x = s[i]; del s[i]; return x (4)
s.remove(x) como del s[s.index(x)] (3)
s.reverse() invierte los elementos de s en el propio objeto (5)
s.sort([cmpfunc]) ordena los elementos de s en el propio objeto (5), (6)
Notas:

(1)
La implementación C de Python aceptaba múltiples parámetros y los juntaba en una tupla. Esto no funciona en Python 2.0. Se desaconsejaba usar esta anomalía desde Python 1.4.

(2)
Lanza una excepción si x no es un objeto lista. El método extend() es experimental y no tiene soporte de otros tipos secuenciales mutables que no sean listas.

(3)
Lanza ValueError si x no se encuentra en s.

(4)
El método pop() sólo funciona en los tipos lista y matriz. El argumento opcional i tiene un valor por omisión de -1, para que por omisión, se devuelva y elimine el último elemento.

(5)
Los métodos sort() y reverse() modifican el propio objeto por economía de espacio al ordenar o invertir listas largas. No devuelven la lista ordenada o invertida para recordar esta peculiaridad.

(6)
El método sort() tiene un argumento opcional que especifica una función de comparación de dos argumentos (elementos de las listas) que debe devolver -1, 0 o 1 si el primer argumento se considera menor, igual o mayor que el segundo, respectivamente. Esto ralentiza el proceso de ordenación considerablemente. Por ejemplo, para ordenar una lista en orden inverso es mucho más rápido llamar a los métodos sort() y reverse() que usar la función interna sort() con una función de comparación que invierta la ordenación de los elementos.


Ver Sobre este documento... para obtener información sobre sugerencias.