development:python:thinkpython

Aquesta és una revisió antiga del document


think python

  • <string>.capitalize()
  • <string>.isupper()
  • list(cadena) : separa en caracteres
  • <string>.split() : separa en palabras
    • se puede pasar por parámetro el delimitador
  • <delimitador>.join(<lista>): junta los elementos de la lista, poniendo en medio el delimitador (!!)
  • por referencia (aliasing, más de una referencia al mismo objeto)
  • OJO al usar funciones o métodos al trabajar con listas, (referencia VS new lista) : página 96
  • empty = [], cadenas = ['uno','dos','tres','cuatro','cinco'], numeros = [1,2,3], mixta = ['uno',2,['tres',3],'cuatro']
  • mutables : cadenas[1] = 'DOS'
  • búquedas: 'tres' in cadenas → true
  • recorridos:
    • for i in numeros:
    • for i in range(len(mixta)):
  • concatenación: otra_mixta = cadenas + numeros → ['uno','dos','tres','cuatro','cinco',1,2,3]
  • multiplicativo: numeros * 2 → [1,2,3,1,2,3]
  • slices:
    • de los índices pasados, incluye el primero, excluye el segundo.
    • cadenas[1:] → ['dos','tres','cuatro','cinco']
    • cadenas[:1] → ['uno','dos']
    • cadenas[2:4] → ['tres','cuatro']
    • asignación:
      • cadenas[2:3]=['aaa','bbb'] → ['uno','aaa','bbb','cuatro','cinco']
  • métodos:
    • <list>.append() : añade elemento al final
    • <list>.extend(<list>) : añade al final de la lista otra lista, cambia la primera.
    • <list>.sort() : ordena
    • <list>.pop(#elemento) : extrae elemento de la lista (lo devuelve) en función del índice del mismo
      • del <list>[#elemento] : borra sin devolverlo en función del índice del mismo. permite slices
      • <list>.remove(elemento) : borra el elemento si sabemos cual es
    • print list('cadena') : ['c','a','d','e','n','a']
  • pareja clave-valor
  • no mantiene el orden de entrada dentro del diccionario
  • empty = dict()
  • diccio = {}
  • asignación: diccio[<clave>] = 'valor'
  • len: len(<diccionario>)
  • get : recupera un valor de una clave y permite establecer un valor por defecto (si no existe la clave)
    • <diccionario>.get('<clave>',<default>)
  • keys : devuelve como lista las keys de un diccionario
  • in :
    • busca en las claves, devuelve cierto/falso → '<clave>' in diccio
    • con el uso de <diccionario>.values() se pueden hacer búsquedas en los valores
    • búsqueda por hashtable
    • not in
  • INVERSE pagína 127 → inverse[val] = [key] ????
  • secuencia de valores, separados por coma, inmutables
  • tupla = 'a','b','c','d'
  • tupla = ('a','b','c','d')
  • tupla = 'a', ← nótese la coma final
    • type(tupla)
  • tupla = tuple('cadena')
    • print tupa → ('c','a','d','e','n','a')
  • acceso a elementos:
    • tupla[0]
    • tupla[1:3] ← primero inclusive, último no
  • no se puede reasignar un valor a través del índice, por su caracter inmutable, pero si:
    • tuplaNueva = ('C',) + tupla[1:] → ('C','a','d','e','n','a')
  • usando tuplas:
    • para intercambiar valores: a,b = b,a
    • separar una cadena: add='nombre@dominio.comnombre,dominio = addr.split('@')
  • en funciones:
    • parámetros variables a una función (gathers): def printall(*args):
    • pasar parámtros a través de tuplas, cuando la función espera los valores por separado: t = (7,3) ; divmod(*t) ← sin * da error
  • zip: combina dos tuplas, generando una lista de tuplas con un elemento de cada (hasta la más corta)
    • s = 'abc' ; t = [0,1,2]; mizip = zip(s,t) → [('a', 0), ('b', 1), ('c', 2)]
    • for letra,numero in mizip:print numero,letra
  • enumerate: for indice,elemento in enumerate('abc'):
  • diccionarios:
    • uso de items() para pasar el diccionario a tuplas
    • uso de dict() para pasar una lista de tuplas a diccionario
  • en combinación: d = dict(zip('abc',range(3))) → {'a': 0, 'c': 2, 'b': 1}
  • es de uso común usar tuplas como índices de diccionarios
  • se pueden usar operadores lógicos de comparación con tuplas, se van comparando elemento a elemento hasta que satisface la operación
  • sort se usa de una manera similar (ejemplo SORT en página 119)
  • raise : provoca/lanza una excepción
  • variables globales:
    • para ser manipuladas en una función, se han de declarar previamente global <var> si son inmutables
    • si son mutables (listas, diccionarios), se puede añadir, borrar, modificar sin problema. Solo se tendrían que declarar en caso de reasignación
  • development/python/thinkpython.1559503547.txt.gz
  • Darrera modificació: 02/06/2019 12:25
  • per mate