Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


python listas informatica, Apuntes de Informática

ExpExplicación con detalles sobre listas para programadores que utilizen python

Tipo: Apuntes

2019/2020

Subido el 15/04/2020

carme-font
carme-font 🇪🇸

1 documento

1 / 12

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Listas
Informática
pf3
pf4
pf5
pf8
pf9
pfa

Vista previa parcial del texto

¡Descarga python listas informatica y más Apuntes en PDF de Informática solo en Docsity!

Listas

Informática

Lista

En Python existen modelos de datos diferenciados y cada una de estas tiene unas

especificaciones distintas.

En primer lugar encontramos los básicos y los estructurados. En los básicos encontramos

tres tipos: los numéricos que son valores numéricos como dice el propio nombre

(enteros, reales o imaginarios), luego también encontramos los alfanuméricos son

strings y por último lógicos o boolean que contiene dos valores True o False. Por otro

lado, los básicos coexisten con los estructurados que hallamos tres tipos: los conjuntos

que son conjuntos ordenados de valores, también existen los diccionarios los cuales

asocian claves con valores, por último y sobre el tema tratado seguidamente las tuplas

y listas.

Nombre

Números inmutables

int enteros

long enteros long

float reales

complex imaginarios

bool booleano

Secuencias inmutables

str cadena de caracteres

unicode cadena de caracteres Unicode

tuple tupla

xrange rango inmutable

Secuencias mutables

list lista

range rango mutable

Mapeos dict diccionario

Conjuntos mutables set conjunto mutable

Conjuntos inmutables frozenset conjunto inmutable

Las listas tienen una funcionalidad muy amplia debido a su cantidad de operaciones que

se pueden realizar con ellas. Se pueden modificar los datos contenidos en las listas, así

pues son secuencias mutables. Estas pueden contener todo tipo de elementos.

También existen las listas vacías.

Sintaxis: dentro de dos corchetes se pone la secuencia de valores separados por comas

Objetos mutables:

  • Lista
  • Diccionario

Objetos inmutables:

  • Int
  • Float
  • Complex
  • String
  • Tuple

Las listas pueden ser homogéneas todos los elementos iguales o heterogéneas

elementos distintos. Incluso una lista puede contener listas en ella.

Ejemplo:

  • Heterogenia = [ [325, ‘suspendido’, ‘543’,], [789, ‘aprobado’, ‘243’]]
  • Homogénea = [‘ lunes‘, ‘martes’, ‘deberes’]

Concepto de mutabilidad e inmutabilidad

El Python asigna a los objetos según si son mutables o inmutables. Este objeto se define

en el tiempo de exacción si podrá ser cambiado (mutable) o no (inmutable). Es decir un

valor mutable puede cambiar su estado o contenido después de haber sido creado y un

inmutable no.

Diferencias entre lista, tuplas y cadena de caracteres (strings)

Los strings son un tipo de datos compuesta por cadenas de caracteres. Se distinguen por

dos comillas delate y al final de la cadena de caracteres.

Una lista y una tupla es un conjunto de elementos (valores) como por ejemplo: una

cadena (string), int, float… Una lista es mutable y una tupla es inmutable. Es decir, a

diferencia de la tupla la lista tiene funciones que le permiten poder modificar su

contenido y la tupla no.

Ejemplo dos formas de crear una lista

>>> a = [ ]

>>> b = list ()

>>> a == b

Ejemplo crear una tupla

>>> a = ( )

>>> b = tuple ()

>>> a == b

Ejemplo crear un string

>>> a = ‘ ‘

Funciones propias de las listas

En Python hay muchos métodos definidos para poder modificar las listas, ahora se van

a mencionar los más utilizados.

.append()

Se utiliza para añadir cualquier elemento pero se tiene que tener en cuenta que

cuando se introduce una lista esta se agrega como un solo elemento.

.extend()

Se utiliza para añadir cualquier elemento. En caso de introducir una lista esta

agrega cada elemento de la lista en distintos elementos de la lista a diferencia de

append().

.remove()

Borra elemento indicado de la lista.

.index()

Determinar la posición en la que se encuentra un elemento de la lista (empieza

por la posición 0).

mylist = [ 45, 54, ‘Marc’] mylist.append ([ 5, 4]) [ 45, 54, ‘Marc’, [ 5, 4]]

mylist = [ 45, 54, ‘Marc’] mylist.extend ([ 5, 4])

[ 45, 54, ‘Marc’, 5, 4]

mylist = [ 45, 54, ‘Marc’, 3]

mylist.remove (3) [ 45, 54, ‘Marc’]

mylist = [ 45, 54, ‘Marc’, 3]

mylist.index (‘Marc’) 2

Concepto de aliasing y cómo solucionarlo

Se habla de aliasing cuando un dato tiene más de un nombre asociado a ese valor. Se

produce siempre que se asigna un valor de otra variable a otra es necesario mencionar

que las variables solo son nombres que almacenan referencias a valores.

La funcionalidad que tienen para los programadores es simple y fácil. Se utiliza debido a

que a veces es más eficaz tener una segunda forma de referirse a una lista en vez de

crear una copia. Aun así pueden provocar errores difíciles de encontrar (se explicará a

continuación).

Ejemplo asignación de dos variables en un mismo valor de los strings

En conclusión, se puede observar que aliasing no tiene importancia cuando se

realiza en objetos, elementos inmutables porque el dato no puede cambiar.

Ejemplo asignación de dos variables en una lista

Variable

  • a

Valor

  • 'hola'

Variable

  • a
  • a

Valor

  • 'hola'

Variable

  • a
  • a

Valor

  • 'hola'
  • 'hola Manuel

a1 = ‘hola’

a1 = ‘hola’

a2 = a

a1 = a1 + ‘Manuel’

No supone ningún problema porque Python crea un nuevo string detrás de escena

lista1 = [‘hola’]

Este suceso que se ve anteriormente es un efecto secundario como se ha mencionado

al principio esto puede provocar errores difíciles de encontrar.

Una forma de codificar para que esto no pase se puede hacer de esta forma:

Variable

  • lista

Valor

Variable

  • lista
  • lista

Valor

Variable

  • lista
  • lista

Valor

‘hola’

‘hola’

lista1 = [‘hola’]

lista2 = lista

lista1 = lista1.append(‘Manuel’)

‘hola’ ‘Manuel’

print(lista1)

[‘hola’, ‘Manuel’]

print(lista2)

[‘hola’, ‘Manuel’]

Como se ve en el ejemplo no se ha explícitamente modificado la lista 2.

Sara = [‘hola’, 4, 6, 7]

Maria = list(Sara)

Sara.append(6)

print(Sara)

[‘hola’, 4, 6, 7, 6]

print(Maria)

[‘hola’, 4, 6, 7]

Ejemplo:

Ejercicios de atenea

Producto escalar de una lista (Rec)

En este programa se tiene que calcular el producto escalar.

Lo primero que se hace es poner un contador a 0 (res=0).

Luego se pone un condicional donde compara la cantidad (longitud) de elementos de la variable introducida a sea la misma que b y que sea diferente de 0.

Si los valores introducidos cumplen con esta condición se prosigue y llegamos al bucle, sino se cumple la condición retorna 0.

Entrando en el bucle for iterara tantas veces como de largo sea la variable introducida. Seguidamente multiplicará los valores de las mismas posiciones de a y b posteriormente hará el sumatorio de estas.

Cuando haya realizado todas las iteraciones retornar el sumatorio que se ha guardado en el contador inicializado del principio.

Baruel Ferran, J. (2020). Ejercicio product escalar

def ordenar (a, b):

if a[ 0 ]>b[ 0 ]:

return 1

elif a[ 0 ]<b[ 0 ]:

return - 1

else:

if a[ 1 ]<b[ 1 ]:

return 1

elif a[ 1 ]>b[ 1 ]:

return - 1

else:

return 0

def ordenacion(tupla):

return (tupla[ 0 ], - tupla[ 1 ])

datos = [ ( 5 , 1 ), ( 8 , 3 ), ( 3 , 2 ), ( 5 , 2 ), ( 8 , 1 ), ( 8 , 2 ), ( 2 , 3 )]

sorted(datos, key=clave_ordenacion)

[( 2 , 3 ), ( 3 , 2 ), ( 5 , 1 ), ( 5 , 2 ), ( 8 , 1 ), (8, 2 ), ( 8 , 3 )]

Lista ordenada

Seguidamente se nos pide crear un código nuevo que haga lo mismo, hacer el producto escalar.

En este caso he realizado el ejercicio con un bucle while. Primero de todo he iniciado el contador a 0 (suma = 0) y un valor i = 0 para poder determinar el final de bucle while porque si no sería un bucle infinito.

Luego añado el condicional donde compara la cantidad (longitud) de elementos de la variable introducida a sea la misma que b y que sea diferente de 0. Si se cumple esta condición entramos en el bucle sino el programa retorna el valor de suma que es 0.

Cuando se cumple la condición y nos adentramos en el bucle encontramos el while con la condición de que el valor de i tiene que ser menor o igual que la longitud del valor de entrada (len(a)-1). El menos uno es necesario ya que la asignación de posiciones empieza por el 0.

Seguidamente se calcula el producto escalar multiplicando el mismo valor de las variables según su misma posición y luego hace el sumatorio.

Después por cada vez que repita el bucle se suma + a i. Así podremos acabar el bucle por la condición anterior del while. Eso no indica que ya no hay más valores para continuar la operación.