Subsecciones

Tipos de datos en Python

Además de los tipos ``estándar'' Python proporciona:
  1. Listas: mutables, pueden contener tipos mezclados
    frutas=["naranjas", "uvas", 123, "limones", "uvas"]
    frutas.append("peras")
    frutas.remove(123)
    frutas.remove("uvas") # [naranjas,limones,uvas,peras]
    frutas[2:2] = ["fresas", "pomelos"] # inserta en pos 2
    print frutas       # naranjas,limones,fresas,pomelos,uvas,peras
    print len(frutas)  # 6
    print frutas[0:3]  # naranjas, limones, fresas
    print frutas[-3]   # pomelos
    print frutas[1:-3] # limones, fresas
    frutas.pop()       # Elimina el último elemento  
    del frutas[2:4]    # Elimina los elementos 2 y 3
    frutas.sort()      # Ordena
    print frutas       # [limones,naranjas,uvas]
    a=list("hola")     # a=["h","o","l","a"]
    "o" in a	   # True
    
    Las listas pueden enlazarse
    a = [[0,1],[2,3]]
    print a[1][1]   # 3
    a.append([4,5]) 
    print a[2][0]   # 4
    del a[1]
    print a         # [0,1], [4,5]
    
    range: función built-in que genera listas de valores en secuencia:
    l = range(5)         # l = [0, 1, 2, 3, 4]
    l = range(2, 5)      # l = [2, 3, 4]
    l = range(2, 10, 3)  # l = [2, 5, 8]
    l = range(5, -5, -2) # l = [5, 3, 1, -1, -3]
    a = sum(range(1,4))  # a = 6
    
    Las listas son objetos mutables (string, enteros, etc. no)
    a = 1      # nuevo objeto entero (1) al que a referencia
    b = a      # a y b referencias al mismo objeto entero (1)
    a += 5     # se crea un nuevo objeto 6 (1+5)
    print b    # 1, b sigue referenciando al objeto 1
    a = [1, 2] # nuevo objeto lista
    b = a      # a y b referencias al mismo objeto lista
    a[0] += 5  # se modifica el objeto (mutable)
    print b    # [6, 2] b es modificado
    
    Copia de listas
    a = [1, 2] # nuevo objeto lista
    b = a[:]   # a y b referencias objetos diferentes
    a[0] += 5  # se modifica el objeto (mutable)
    print b    # [1, 2] b no se modificado
    c=list(a)  # otra forma
    

  2. Tuplas: listas inmutables
    y=("enero","febrero","marzo","abril", "mayo", "junio",\
    "julio","agosto","septiembre","octubre","noviembre",\
    "diciembre")  # Paréntesis opcionales
    print y[3]    # Abril
    
  3. Conjuntos (Sets): sin elementos duplicados
    cesta=["naranjas", "uvas", "limones", "uvas"]
    frutas=set(cesta)
    print frutas  # naranjas,uvas,limones
    a = set("abracadabra")
    b = set("alacazam")
    print a      # "a", "r", "b", "c", "d"
    print a-b    # "r", "b", "d"
    print a | b  # "a", "c", "b", "d", "m", "l", "r", "z"
    print a & b  # "a", "c"
    print a ^ b  # "b", "d", "m", "l", "r", "z"
    
  4. Diccionarios
    edad_de = {"Eva":23, "Ana":19, "Oscar":41}
    print edad_de["Ana"]  # Imprime 19
    edad_de["Eva"] = 18   # Cambia un valor
    edad_de["Juan"] = 26  # Añade un elemento
    del edad_de["Oscar"]  # Borra un elemento
    edad_de.keys()        # ["Eva", "Juan", "Ana"]
    edad_de.values()      # [18, 26, 19]
    for key,value in edad_de.items():
      print key,"->",value
    dict([("a",1),("b",2),("c",3)])  # {"a":1, "c":3, "b":2}
    dict(a=1, b=2, c=3) # {"a":1, "c":3, "b":2}
    

Compresión de listas

x = [1, 2, 3, 4, 5, 6, 7, 8]
xx = [n ** 2 for n in x if n > 4]  # xx=[25, 36, 49, 64]

l = [0, 1, 2, 3]
m = ["a", "b"]
n = [s*v for s in m
         for v in l
         if v > 0]    # n = ["a", "aa", "aaa", "b", "bb", "bbb"]

dict([(x, x**2) for x in (2, 4, 6)]) # {2:4, 4:16, 6:36}



Administración de Sistemas e Redes <ASR.USC[at]gmail.com>
Tomás Fernández Pena <tf.pena[at]usc.es>
Última actualización: 30-09-15 17:44 por tomas

Creative Commons License
Curso de Administración de Sistemas y Redes por Tomás Fernández Pena se distribuye bajo la licencia Creative Commons Recoñecemento-Compartir baixo a mesma licenza. 3.0 España.
Trabajo original en persoal.citius.usc.es/tf.pena/ASR.