Herramientas Informaticas

Categoría: Lista

8.12. Clonar listas

Si queremos modificar una lista y mantener una copia del original, necesitaremos ser capaces de hacer una copia de la lista en sí, no solo de su referencia. Este proceso a veces se denomina clonado, para evitar la ambigüedad de la palabra ”copia”.

La forma mas fácil de clonar una lista es por medio del operador de porción:

   1: >>> a = [1, 2, 3]

   2: >>> b = []

   3: >>> b[:] = a[:]

   4: >>> print b

   5: [1, 2, 3]

La extracción de una porción de a crea una nueva lista. En este caso, la porción consta de la lista completa.

Ahora tenemos libertad de hacer cambios en b sin preocuparnos de a:

   1: >>> b[0] = 5

   2: >>> print a

   3: [1, 2, 3]

Como ejercicio, dibuje un diagrama de estado de a y b antes y después del cambio.

8.16. Cadenas y listas

Dos de las funciones mas útiles del modulo string tienen que ver con listas de cadenas. La función split divide una cadena en una lista de palabras. Por defecto, cualquier numero de caracteres de espacio en blanco se considera un límite de palabra:

   1: >>> import string

   2: >>> cancion = "La lluvia en Sevilla..."

   3: >>> string.split(cancion)

   4: ['La', 'lluvia', 'en', 'Sevilla...']

Se puede usar un argumento opcional llamado delimitador para especificar que caracteres se usaran como límites de palabra. El siguiente ejemplo usa la cadena ll como delimitador:

   1: >>> string.split(cancion, 'll')

   2: ['La ', 'uvia en Sevi', 'a...']

Observe que el delimitador no aparece en la lista.

La función join es la inversa de split. Toma una lista de cadenas y concatena

los elementos con un espacio entre cada par:

   1: >>> lista = ['La', 'lluvia', 'en', 'Sevilla...']

   2: >>> string.join(lista)

   3: 'La lluvia en Sevilla...'

Como split, join acepta un delimitador opcional que se inserta entre los elementos. El delimitador por defecto es el espacio.

   1: >>> string.join(lista, '_')

   2: 'La_lluvia_en_Sevilla...'

A modo de ejercicio, describa la relación que hay entre
string.join(string.split(cancion)) y canción. ¿Esla misma para todas las cadenas?
¿Cuando sería diferente?

8.17. Glosario

lista: Una colección de objetos con nombre, en la que cada objeto es identificado por un índice.

índice: Una variable o valor enteros que se usan para indicar un elemento de una lista.

elemento: Uno de los valores de una lista (u otra secuencia). El operador corchete selecciona elementos de una lista.

secuencia: Cualquier tipo de datos que consista en un conjunto ordenado de elementos, con cada elemento identificado por un índice.

lista anidada: Una lista que es elemento de otra lista.

recorrido de lista: Acceso secuencial a cada elemento de una lista.

objeto: Una cosa a la que se puede referir una variable.

alias: Múltiples variables que contienen referencias al mismo objeto.

clonar: Crear un objeto nuevo que tiene el mismo valor que un objeto ya existente. Copiar una referencia a un objeto crea un alias, pero no clona el objeto.

delimitador: Un carácter o cadena utilizado para indicar donde debe cortarse una cadena.

Página 2 de 2

Creado con WordPress & Tema de Anders Norén