Resumen de estructuras de datos de Python

Tuplas, Listas, Sets, Diccionarios, Listas de comprehension, Funciones, Clases

Vamos a ver ejemplos de estrucutras de datos en Python

Tuplas

Son el tipo mas simple de estr. puede almacenar en una misma variable mas de un tipo de dato.


In [23]:
x = (1,2,3,0,2,1)
x


Out[23]:
(1, 2, 3, 0, 2, 1)

In [13]:
x = (0, 'Hola', (1,2))

In [15]:
x[1]


Out[15]:
'Hola'

Lo Malo de las tuplas es que son inmutables


In [16]:
id(x)


Out[16]:
4347684616

In [26]:
x = (0, 'Cambio', (1,2))
id(x)


Out[26]:
4347772864

In [27]:
x


Out[27]:
(0, 'Cambio', (1, 2))

Listas

Son elementos


In [21]:
x = [1,2,3]
x.append('Nuevo valor')
x


Out[21]:
[1, 2, 3, 'Nuevo valor']

In [22]:
x.insert(2, 'Valor Intermedio')
x


Out[22]:
[1, 2, 'Valor Intermedio', 3, 'Nuevo valor']

Qué es ams rapido: Tulpas o Listas?


In [30]:
import timeit
timeit.timeit('x = (1,2,3,4,5,6)')


Out[30]:
0.02494803499939735

In [31]:
timeit.timeit('x = [1,2,3,4,5,6]')


Out[31]:
0.11259043600148289

Atencion a los usuarios de R: referencia o asignacion?


In [34]:
x = [1,2,3]  # Asignacion
y = [0, x]   # Referencia
y


Out[34]:
[0, [1, 2, 3]]

In [36]:
x[0] = -1 # Asigno otra lista a x
y         # al cambiar el valor en x se cambio en y (y apunta a x)


Out[36]:
[0, [-1, 2, 3]]

 Diccionarios

En una gran cantidad de problemas, quieren almacenar claves y asignarle a cada clave un valor. Un mejor nombre para un diccc. es un "directorio telefonico"


In [37]:
dir_tel = {'juan':5512345, 'pedro':5554321, 'itam':'is fun'}
dir_tel['juan']


Out[37]:
5512345

In [38]:
dir_tel.keys()


Out[38]:
dict_keys(['juan', 'pedro', 'itam'])

In [39]:
dir_tel.values()


Out[39]:
dict_values([5512345, 5554321, 'is fun'])

Sets

son conj. matematicos


In [40]:
A = set([1,2,3])
B = set([2,3,4])

In [41]:
A | B # Union


Out[41]:
{1, 2, 3, 4}

In [42]:
A & B # Intersección


Out[42]:
{2, 3}

In [43]:
A - B # Diferencia de conj.


Out[43]:
{1}

In [44]:
A ^ B # Diferencia simetrica


Out[44]:
{1, 4}

Condicionales y Loops, For, While, If, Elif

truco para hacer loops en python es la func. range


In [45]:
range(1000)


Out[45]:
range(0, 1000)

In [47]:
for i in range(5):
    print(i)


0
1
2
3
4

In [50]:
for i in range(10):
    if i % 2 == 0:
        print(str(i) + ' Par')
    else:
        print(str(i) + ' Impar')


0 Par
1 Impar
2 Par
3 Impar
4 Par
5 Impar
6 Par
7 Impar
8 Par
9 Impar

In [54]:
i = 0
while i < 10:
    print(i)
    i = i + 1


0
1
2
3
4
5
6
7
8
9

Clases


In [66]:
class Person:
    def __init__(self, first, last):
        self.first = first
        self.last = last
        
    def greet(self, add_msg = ''):
        print('Hello ' + self.first + ' ' + add_msg)

In [67]:
juan = Person('juan', 'dominguez')
juan.first


Out[67]:
'juan'

In [68]:
juan.greet()


Hello juan 

In [ ]: