Material Complementario - Estructura de Datos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

> estructuras de datos

Estructuras
de datos -
list - tuple - set -dict

INTRODUCCIÓN Por lo tanto, es importante que los pro-


gramadores comprendan las diferentes
Hasta el momento pudimos ver lo qué estructuras de datos y su uso para poder
son las variables y las estructuras de elegir la estructura más adecuada para
control de flujo condicional, por lo que cada situación y problema.
ya podemos comenzar a, no solo alma-
cenar valores con las variables, sino que Hay cuatro tipos de estructuras de datos
también, ya podemos comenzar a con- en Python: listas, tuplas, conjuntos y
trolar el flujo del programa. diccionarios.
Pero surge algo más que debemos con-
trolar, y es la organización de los datos y LISTA - list
la forma de almacenarlos.
Las listas son una colección ordenada y
Las estructuras de datos o también tipos mutable de elementos que pueden ser
de datos compuestos son una forma de de diferentes tipos de datos.
organizar y almacenar datos para que Se pueden agregar, eliminar y modificar
puedan ser manipulados y utilizados de elementos de una lista.
manera eficiente. Una estructura de da- Las listas se definen utilizando corchetes
tos se refiere a una colección de valores [] y, los elementosde la lista, se separan
de datos que están organizados y alma- por comas.
cenados de una manera particular para
su uso y acceso.

La elección de una estructura de datos


adecuada es fundamental para el éxito
de cualquier proyecto de programación,
ya que una estructura de datos inapro- Podemos observar que, para crear una
piada puede resultar en un código lento, lista, basta solo son declarar un nombre
ineficiente e incluso incorrecto. para la lista y asignar datos, de un tipo o
varios,dentro de corchetes y separados
Cada uno de estos datos se convierte en ¿Y qué más puede contener una
un elementode la lista, por lo que pue- lista?
deser accedido mediante un índice.
Puede contener otras listas adentro de
la lista. En ese caso, esta lista adentro
de la otra se convierte en un elemento
En las listas cada elemento tiene un ín- más, por lo que si queremos acceder a la
dice contando desde el 0 (cero). Es decir lista dentro de la lista, lo hacemos con el
que, para acceder al primer elemento de número de índice, tal cual como lo hace-
nuestra lista, debemos hacerlo desde el mos para acceder a cualquier elemento,
0. Para mostrar lo que hay en nuestra lis- pero ahora veremos una lista completa.
ta usamos, como ya lo venimos hacien-
do, la función print().

En el ejemplo anterior te lo mostramos


De esta manera podemos mostrar lo que con la lista “números”, la cual la inclui-
tiene nuestra lista ya sea en el elemento mos en la lista de nombre “lista”, por lo
0 (cero) o en el elemento al cual quera- que, si llamamos al índice que corres-
mos acceder, siempre con el número de ponde, nos da como resultado, los ele-
índice entre corchetes, luego del nombre mentos que se encuentran en la lista
de la lista. “números”.
Si queremos mostrar todos los elemen-
tos que tiene la lista, lo hacemos sin Además, podemos incluir una lista que
poner un índice. no declaramos antes, y esto lo hacemos
solamente abriendo corchetes e inclu-
yendo los elementos que queremos en
la lista, como en el siguiente ejemplo.
Además, podemos acceder a un rango Y otra forma de acceder a los elementos
de elementos de la lista, como te mos- de la lista, es desde el final hacia ade-
traremos en el siguiente ejemplo. Esto se lante. Esto lo hacemos usando números
llama Slicing. negativos.

Como se puede observar, esto se hace es- O, al anteúltimo, y así sucesivamente,


cribiendo el rango al que queremos acceder podemos recorrer la lista desde atrás.
(escribiendo el número de la primer posición,
separado por : (dos puntos) y, el número de la
última posición a la que queremos acceder). En
este caso accedimos al elemento de la posi-
ción 1 (es decir, el segundo elemento de la lista)
hasta el elemento de la posición 3 (que sería
el elemento 4). Volvemos a recordarte que, al
momento de acceder, Python cuenta desde el 0 Para modificar un elemento de la lista
en adelante.
También, se puede dar un rango desde una po-
solo basta son asignar el nuevo valor a
sición hasta el final o, desde el principio hasta la posición del elemento que deseamos
una posición. cambiar.

Ejemplo:
desde una posición hasta el final de la lista

Y si asignamos nuevos valores a la lista,


éstos nuevos valores reemplazan a to-
Ejemplo:
desde el principio de la lista hasta una posición
dos los elementos que había antes en la
lista. Todo esto que venimos haciendo es
gracias a que las listas son mutables.
Además, podemos acceder a un rango Así que podemos decir que, la principal
de elementos de la lista, como te mos- diferencia entre una función y un méto-
traremos en el siguiente ejemplo. Esto se do en Python, es que
llama Slicing. una función es independiente y puede
ser llamada desde cualquier parte del
Métodos para listas programa (o incluso
desde otros programas), mientras que un
Además, podemos hacer otras cosas método está asociado con un objeto en
con las listas, como agregar elementos, particular y solo
eliminarlos, etc., mediante métodos, la puede ser utilizado por objetos de ese
cual, es una nueva palabra que estamos tipo.
introduciendo al vocabulario, por lo que
te daremos una pequeña explicación y Explicado brevemente esto (más ade-
su diferencia con funciones (las cuales lante vas a comprender aún mejor esto),
venimos usando desde el primer día). vamos a ver los
métodos más comunes que se puede
usar con listas.

• append(elemento): Agrega un ele-


mento al final de la lista.

• extend(iterable): Agrega los elemen-


tos de un iterable al final de la lista.

• insert(i, elemento): Inserta un ele-


mento en una posición específica de
la lista.

• remove(elemento): Elimina la primera


aparición de un elemento de la lista.

• pop([i]): Elimina el elemento en la


posición especificada y lo devuelve. Si
no se especifica una posición, elimina
y devuelve el último elemento de la
lista.

• clear(): Elimina todos los elementos


de la lista.
• index(elemento[, inicio[, fin]]): De- remove()
vuelve la posición de la primera apa-
rición de un elemento en la lista. Se
pueden especificar los índices de
inicio y fin para hacer un slicing.

• count(elemento): Devuelve el número


de veces que un elemento aparece en
la lista.

• reverse(): Invierte el orden de los ele-


mentos en la lista.

• copy(): Devuelve una copia superficial


de la lista.

• sort(key=None, reverse=False): Ordena len()


los elementos de la lista en orden as-
cendente (a menos que se especifique
lo contrario con el parámetro rever-
se=True). Se puede especificar una
función de clave opcional para definir
el orden de clasificación.

• len(): devuelve el número de elemen-


tos en la lista.

TUPLA -tuple
Tres ejemplos en código de cómo usar
alguno de estos métodos Una tupla es una colección de elementos
ordenados e inmutables. Las tuplas son
append() similares a las listas,
pero a diferencia de las listas, una vez
que se crea una tupla, no se pueden
agregar, eliminar o modificar elementos.

Las tuplas se pueden crear utilizando


paréntesis () y los elementos se separan
por comas. Incluso si una tupla tiene un
solo elemento, se debe incluir una coma
al final para indicar que es una tupla en
lugar de un valor entre paréntesis.
Como se puede observar, tiene prácti-
camente la estrustura de una lista para
crearla, pero en vez de corchetes, lleva
paréntesis. Sin embargo, las tuplas pue-
den ser creadas sin paréntesis también
(siguiendo el mismo orden de separar
los elemcntos por coma), pero por con-
vención usamos paréntesis.
Una tupla es inmutable

Cuando nos referimos a esto, decimos


que las tuplas no pueden ser modifica-
das, a diferencia de las listas, las cuales
si queríamos modifisar un elemento,
podíamos asignar un nuevo valor ingre-
sando el nuevo elemento mediante su
índice. Con las tuplas no ocurre esto.
Si bien podemos mostrar por pantalla un
En el ejemplo anterior te mostrábamos elemento de la tupla mediante su
lo que decíamos sobre poder crear una índice (como lo hacíamos en las listas),
tupla sin paréntesis, sin embargo, por no podemos modificar un elemento.
convención, vamos a crear las tuplas con Lo vemos en el siguiente ejemplo:
paréntesis.

Algo que también aplicamos es la fun-


ción type() para ver el tipo de estructura
que tenemos (lo usamos para ver los ti-
pos de datos simples en las variables), y
esta función también se puede usar para
listas, conjuntos, diccionarios y tuplas,
como es este caso. Aquí accedemos mediante el índice a
un elemento de la tupla. En este caso al
Mencionamos antes también, que si segundo elemento.
queremos crear una tupla de un solo
elemento, siempre debemos poner la
coma al final.
Aquí estamos intentando modificar la CONJUNTO - set
tupla como lo hacíamos con las listas,
sin embargo, vemos que nos da un error Un conjunto es una colección de ele-
al intentar realizar esto. mentos desordenados y únicos. Así
como vimos que las listas y
Esto no quiere decir que una vez creada tuplas son estructuras ordenadas, ya que
la tupla no se le pueda modificar más, por medio de índices podemos acceder
o reutilizarla en todo caso, lo que no se a los elementos que contienen, aquí no
puede modificar es por medio de índices, ocurre lo mismo.
es decir, no se puede modificar un solo
valor de la tupla, pero si podemos rees- Cada elemento que contiene el conjun-
cribir completamente todos los valores. to, no tiene índice y no puede accederse
como lo veníamos haciendo anterior-
mente. Otra diferencia es que son únicos,
ya que sus elementos no pueden repe-
tirse. Esta es una función útil
cuando queremos eliminar valores, o
elementos, duplicados.
También son muy útiles para realizar
operaciones de conjunto, como la unión,
la intersección, la diferencia y la com-
probación de la pertenencia de ele-
mentos. Aquí para crearlos utilizaremos
Y si bien las tuplas no tienen tantos llaves { }
métodos para usarse sobre ellas como
las listas, te invitamos a que puedas
probar algunos de los métodos qus te
dimos para las listas y verás que algu-
nos sirven también para tuplas y otros
no. También te animamos a que búsques
y practiques más métodos para tuplas.
Como se puede observar, se mantiene la
Práctica, más práctica y mucha más misma estructura básica de como venía-
práctica te a ayudarán a ser un buen mos creando las otras estructuras, con la
programador! diferencia de el uso de llaves. Pero, va-
mos a ver una de las características del
conjunto, y es que son únicos.
En este ejemplo estamos repitiendo los asignación, una llave de apertura y al
valores “Hola”, 1 y 5, sin embargo,cuando final una llave de cierre, pero los datos se
mostramos por pantalla, estos valores agregan de otra forma.
duplicados no salen, a diferencia de las Aquí debe ir una clave (de cualquier tipo
listas o tuplas en las que si podíamos de dato), : (dos puntos) y un valor (de
ingresar valores duplicados. cualquier tipo de dato), y para seguir
Aquí el conjunto está cumpliendo con su agregando datos, los separamos por co-
característica de eliminar la duplicidad mas como el resto de las estructuras.
de datos. Y para probar la otra Para acceder a un dato del diccionario,
característica de desordenado, te invi- se debe usar su clave y obtendremos el
tamos a copiar este código y ejecutarlo valor.
varias veces. Vas a poder apreciar que
todas las veces que se muestren estos
datos por pantalla, no van a estar en el
mismo orden.

DICCIONARIO - dict

Y aquí llegamos al último apartado de


estructuras de datos. Un diccionario es
una estructura de datos que permite
almacenar información en pares clave -
valor (key - value). Es decir, cada
elemento del diccionario consta de una Y para modificar un valor lo hacemos de
clave y un valor asociado a dicha clave. la siguiente forma:

La clave debe ser única dentro del dic-


cionario, mientras que los valores
pueden ser de cualquier tipo de datos.
De la misma forma que con los conjun-
tos, se utilizan las llaves {} para crearlo,
sin embargo, difiere un poco en la forma Accedemos a la clave y asignamos un
de hacerlo. Vamos a ver un ejemplo. nuevo valor.

Otra forma de crear diccionarios es


usando la función dict(), y se puede
usar de la siguiente manera:
Vemos que comenzamos de la misma
forma que las demás estructuras, con el
nombre que va a tener, el signo de
O usando la sintaxis de argumentos de
• popitem(): Elimina y devuelve un par
palabras clave para especificar las claves clave-valor aleatorio del diccionario.
y los valores:
• setdefault(): Devuelve el valor asocia-
do a una clave dada, o lo crea con un
valor predeterminado si la clave no
está presente.

Sin embargo, la forma más común que • update(): Actualiza el diccionario con
vas a ver en la creación de diccionarios los pares clave-valor de otro diccio-
es como te mostramos de en la primer nario o iterable.
forma, con el nombre, la asignación y el
• values(): Devuelve una vista de lista
uso de llaves.
de todos los valores en el diccionario.
Métodos para diccionarios

Éstos son algunos de los métodos más


comunes para diccionarios, sin embar- Repasando conceptos
go, te invitamos a que los puedas probar
LISTA - list
para practicar y ver como funciona cada
Permite almacenar una colección orde-
uno. nada y mutable de elementos, que pue-
den ser accedidos mediante un índice
• clear(): Elimina todos los elementos numérico.
del diccionario. Es la estructura que más frecuentemente
vamos a utilizar debido a su versatili-
• copy(): Devuelve una copia superficial dad, orden y acceso. Recuerda que para
del diccionario. crearla se hace escribiendo un nombre
para la lista, signo de asignación y entre
• get(): Devuelve el valor asociado a una corchetes los valores que vamos a guar-
clave dada, o un valor predeterminado dar separados por coma cada uno. Su
si la clave no está presente. nombre en inglés es list.

• items(): Devuelve una vista de lista TUPLA - tuple


de todos los pares clave-valor en el Permite almacenar una colección or-
diccionario. denada e inmutable de elementos, que
también pueden ser accedidos mediante
• keys(): Devuelve una vista de lista de un índice numérico.
todas las claves en el diccionario. Al igual que las listas, la forma de crear-
las es similar, pero en vez de usar cor-
• pop(): Elimina y devuelve el valor chetes, usamos paréntesis. Su nombre en
asociado a una clave dada. inglés es tuple.
CONJUNTO - set DICCIONARIO - dict
Permite almacenar una colección desor- Permite almacenar una colección no
denada y mutable de elementos únicos ordenada, mutable e indexada de pares
y no indexados. Los elementos en un clave-valor.
conjunto son únicos y no se permiten Las claves deben ser únicas en un dic-
elementos duplicados. Al igual que las cionario (no debemos repetir el nombre
listas o tuplas, la forma de crearlas es de una clave), mientras que los valores
similar, pero aquí usamos llaves en vez pueden ser de cualquier tipo de datos.
de corchetes o paréntesis. Su nombre en Los diccionarios son muy útiles cuando
inglés es set. se necesita acceder rápidamente a un
valor basado en una clave. Su nombre en
inglés es dict.

También podría gustarte