0% encontró este documento útil (0 votos)
11 vistas2 páginas

Estructuras de Datos en Python: Guía Rápida

El documento es una hoja de trucos de Python que cubre estructuras de datos como tuplas, listas, diccionarios y conjuntos, junto con sus métodos y operaciones básicas. También incluye información sobre funciones, manejo de excepciones, y características del lenguaje como la sensibilidad a mayúsculas y minúsculas. Se presentan ejemplos de código para ilustrar el uso de cada estructura y función, facilitando su comprensión y aplicación.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas2 páginas

Estructuras de Datos en Python: Guía Rápida

El documento es una hoja de trucos de Python que cubre estructuras de datos como tuplas, listas, diccionarios y conjuntos, junto con sus métodos y operaciones básicas. También incluye información sobre funciones, manejo de excepciones, y características del lenguaje como la sensibilidad a mayúsculas y minúsculas. Se presentan ejemplos de código para ilustrar el uso de cada estructura y función, facilitando su comprensión y aplicación.

Traducido por

ScribdTranslations
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Estructuras de datos

Hoja de trucos de Python Crear tupla tup1=4,5,6o



Nota:
tup1= (6,7,8)
• 'el' índice de 'inicio' está incluido, pero el índice 'detener' NO.
solo lo básico Crear tupla anidada tup1=(4,5,6), (7,8)
• start/stop se puede omitir en los que se predeterminan a
Convertir secuencia o el inicio/el final.
Iterador a Tupla tupla([1,0,2])
CreatedBy: arianneColton andSeanChen Concatenar Tuplas tup1+tup2
Desempaquetar tupla a,b,c=tup1 § Aplicación de 'paso':

Aplicación de tupla Toma cada segundo elemento lista1[::2]

General tipos escalares Intercambiar variables b,a=a,b Invertir una cadena str1[::-1]

Python es sensible a mayúsculas y minúsculas


LISTA DICT (MAPA HASH)

*str(), bool(), int() y float() también son tipos explícitos Unidimensional, de longitud variable, mutable (es decir,
• El índice de Python comienza desde 0 funciones de conversión. la secuencia de objetos de Python (los contenidos pueden ser modificados) 2, '1eulav' : '1yek=
'1{tcid
Crear diccionario
Python usa espacios en blanco (tabulaciones o espacios) para la indentación de CUALQUIER tipo. [3,2]
• Crear diccionario de
[Link](None)- valor 'null' de Python (SOLO) dict(zip(keyList,
código en lugar de usar llaves. list1= [1, 'a',3]o Secuencia valueList))
existe una instancia del objeto None Crear lista
lista1= lista(tup1) dict1['clave1']*
AYUDA • Ninguno no es una palabra clave reservada sino más bien un Obtener/Establecer/Insertar Elemento

instancia única de 'NoneType' Concatenar Listas* lista1+lista2o dict1['key1']='newValue'


[Link](list2) Obtener con valor predeterminado [Link]('clave1',
Pá g i n a d e a y u d a ayuda() • Ninguno es el valor predeterminado común para opcional Agregar al final de la lista [Link]('b') defaultValue)**
Función de Ayuda ayuda([Link]) argumentos de función : Insertar a Específico [Link](posIdx, Verificar si la clave existe 'key1' indict1
Ayuda del Módulo ayuda(re) Posición 'b')** Eliminar elemento deldict1['clave1']
deffunc1(a,b,c= None) Inverso de Insertar valorEnIdx=list1. Obtener lista de claves [Link]()***
MÓDULO (TAMBIÉN CONOCIDO COMO BIBLIOTECA) pop(posIdx) Obtener lista de valores [Link]()***
• Uso común de None : Eliminar el primer valor
Un módulo de Python es simplemente un archivo '.py' de la lista [Link]('a') [Link](dict2)
Actualizar valores
si la variable es None : Verificar Membresía 3inlist1=> True*** # los valores de dict1 son reemplazados por dict2
Lista de Contenidos del Módulo dir(module1) Ordenar lista [Link]()
[Link]- módulo 'datetime' incorporado en python * 'KeyError' excepción si la clave no existe.
Cargar Módulo importarmodulo1* Ordenar con Usuario - [Link](key=len)
proporciona tipos 'datetime', 'date', 'time'.
Llamar a la función del módulo mó[Link]ón1() Función Proporcionada ordenar por longitud 'get()' por defecto (también conocido como sin 'defaultValue') hará
• 'datetime' combina información almacenada en 'date'
* La declaración de importación crea un nuevo espacio de nombres y y 'tiempo' retorna 'Ninguno' si la clave no existe.
* La concatenación de listas usando '+' es costosa ya que
ejecuta todas las declaraciones en el [Link] se debe crear una nueva lista y copiar objetos *** Devuelve las listas de claves y valores en el mismo
archivo dentro de ese espacio de nombres. Si deseas cargar el dt1= fecha y hora.
Crear fecha y hora
terminado. Así que,extender()es preferible.
orden. Sin embargo, el orden no es ningún particular
el contenido del módulo en el espacio de nombres actual, usar 'de de String strptime('20091031', orden, también conocido como es más probable que no esté ordenado.
'%Y%m%d')
módulo1 import*' ** Insertar es computacionalmente costoso en comparación
G e t 'd a t e ' o b j e c t [Link]() con añadir. Tipos de claves de diccionario válidas

Obtén el objeto [Link]()


tiempo • Las claves tienen que ser inmutables como los tipos escalares (int,
*** Verificar que una lista contenga un valor es mucho más lento
flotante, cadena) o tuplas (todos los objetos en la tupla
tipos escalares que diccionarios y conjuntos, ya que Python hace un linear
Formato de fecha y [Link]('%m/%d/%Y
a Cadena %H:%M') también necesitan ser inmutables)
escanear donde otros (basado en tablas hash) en
Cambiar Campo dt2=[Link](minuto= tiempo constante. • El término técnico aquí es 'hashabilidad'.
Verificar tipo de dato :tipo(variable) Value 0, segundo=30) verificar si un objeto es hashable con el
diff=dt1-dt2 hash('esta es una cadena'), hash([1,2])
SEIS TIPOS DE DATOS COMÚNMENTE UTILIZADOS Obtener diferencia Módulo 'bisect' incorporado
# diff es un objeto '[Link]' esto fallaría.
• Implementa la búsqueda binaria e inserción en un
[Link]/long*- Un int grande se convierte automáticamente a long Nota: La mayoría de los objetos en Python son mutables, excepto lista ordenada FIJAR
[Link]*- 64 bits, no hay tipo 'doble' para 'cadenas' y 'tuplas' • '[Link]' encuentra la ubicación, donde 'bisect. • Un conjunto es una colección desordenada de ÚNICOS
insort' en realidad inserta en esa ubicación. elementos.
[Link]*- Verdadero o Falso
[Link]*- valor ASCII en Python 2.x y Unicode en Python 3 ‡ADVERTENCIA: las funciones del módulo bisect no • Puedes pensar en ellos como diccionarios pero solo con claves.
• La cadena puede estar en comillas simples/dobles/triples Estructuras de datos verificar si la lista está ordenada, hacerlo sería
ser computacionalmente costoso. Así, usándolos Crear Conjunto conjunto([3,6,3])o
{3,6,3}
• Una cadena es una secuencia de caracteres, por lo tanto puede ser en una lista desordenada tendrá éxito sin errores pero Subtotal de prueba
puede llevar a resultados incorrectos. [Link] subconjunto (conjunto2)
tratado como otras secuencias
Nota: Todas las llamadas a funciones que no son de tipo Get [Link]() Prueba Superset [Link](conjunto2)
• El carácter especial se puede hacer a través de\ o prefacio los ejemplos a continuación son en el lugar (sin crear uno nuevo CORTANDO PARA TIPOS DE†SECUENCIA Los conjuntos de prueba tienen el mismo
conr operaciones de objeto) a menos que se indique lo contrario. content set1==set2

str1= r'this\f?ff' † Los tipos de secuencia incluyen 'str', 'array', 'tuple', 'list', etc. •Set operations :
• El formateo de cadenas se puede hacer de varias maneras TUPLA Unión (también conocido como 'o') set1|set2
Secuencia unidimensional, de longitud fija e inmutable Notación list1[inicio:parar] Intersección (también conocido como 'y') conjunto1&conjunto2
'%.2f %shaha$%d'
str1=template% (4.88, 'hola',2) de objetos de Python de CUALQUIER tipo. lista1[inicio:fin:paso] Diferencia conjunto1-conjunto2
§
(Si se usa el paso) Diferencia Simétrica (también conocido como 'xor')conjunto1^conjunto2
Funciones orientado a objetos manejo de excepciones
Python se pasa por referencia, argumentos de función • Aplicación :
proGramminG 1. Forma Básica :
se pasan por referencia. 'objeto' es la raíz de todos los tipos de Python intentar
sorted(set('abc bcd')) => [' ' ..
• Forma básica : ["a","b","c","d"] 2. Todo (número, cadena, función, clase, módulo, exceptValueErrorase:
devuelve caracteres únicos ordenados etc.) es un objeto, cada objeto tiene un 'tipo'. Objeto impresora
deffunc1(argPos1,argClave1= una variable es un puntero a su ubicación en la memoria.
1, ..): excepto (TypeError, AnotherError):
3. Zippairs agrupa elementos de una serie de listas, tuplas o 3. Todos los objetos tienen conteo de referencias. ..
otras secuencias para crear una lista de tuplas : excepto:
Nota: [Link](5) =>x ..
zip(seq1,seq2) => finalmente:
• Los argumentos de palabras clave MUST seguir a los posicionales a=5,b=a .. # limpiar, por ejemplo, cerrar la base de datos
argumentos. [('sec1_1', 'sec2_1'), (..), ..]
Esto crea una 'referencia' al objeto en el 2. Lanzar excepción manualmente
• Python por defecto NO es "evaluación perezosa", el lado derecho de =, por lo tanto tanto a como b apuntan a 5
las expresiones se evalúan de inmediato. • Zip puede tomar un número arbitrario de secuencias.
Sin embargo, el número de elementos que produce es raise AssertionError# falla de aserción
[Link](5) => x+2 elevar SystemExit solicitar salida del programa
• Mecanismo de Llamada a Función : determinado por la secuencia 'más corta'.
del(a); [Link](5) =>x+1 raise RuntimeError('Error message :
1. Todas las funciones son locales al nivel del módulo • Aplicación: Iterar simultáneamente sobre múltiples ..')
alcance. Ver sección 'Módulo'. sequences : [Link] Básica de Clase :
2. Internamente, los argumentos se empacan en una tupla fori, (a,b) en
y dict, la función recibe una tupla 'args' y
diccionario 'kwargs' y desempaquetar internamente.
enumerar(zip(seq1,seq2)):
classMiObjeto(object):
'self' es equivalente a 'this' en Java/C++ lista, conjunto y diccionario
• Uso común de 'Las funciones son objetos': • Descomprimir - otra forma de pensar en esto es
convertir una lista de filas en una lista de columnas.
def __init__(self,nombre):
[Link]=name
comprensiones
deffunc1(ops= [[Link],user_ defmemberFunc1(self,arg1): Azúcar sintáctica que hace que el código sea más fácil de leer y escribir
definir_func,..],..): seq1,seq2= zip(*zipOutput)
para función en ops: .. 1. Comprensiones de listas
value= function(value) @estático
4. Reitera en reversa sobre los elementos de una secuencia • Forma concisamente una nueva lista filtrando los elementos
defclassFunc2(arg1): de una colección y transformando los elementos
VALORES DE RETORNO en orden inverso. pasando el filtro en una expresión concisa.
..
No se devuelve ninguno si se alcanza el final de la función
list(reversed(range(10)))* obj1=MyObject('name1') • Forma básica :
without encountering a return statement. obj1.memberFunc1('a')
[exprporvalorencolecciónsicondición]
• Varios valores devueltos a través de UN objeto tupla *reversed() devuelve el iterador,lista()hace MyObject.classFunc2('b')
es una lista. Un atajo para :
retornar (valor1, valor2) 5. Herramienta interactiva útil :
result = []
valor1,valor2= func1(..)
dir(variable1)# lista todos los métodos disponibles en forvalincollection:
FUNCIONES ANÓNIMAS (TAMBIÉN CONOCIDAS COMO LAMBDA) control y flujo el objeto si condición:
[Link](expr)
• ¿Qué es una función anónima?
Una función simple que consiste en una sola instrucción. 1. Operadores para condiciones en 'si entonces': La condición del filtro se puede omitir, dejando solo el

lambdax:x*2 Verifica si dos variables son


comúnstrinG expresión.
2. Comprensión de Diccionarios
var1esvar2
# def func1(x) : return x * 2 mismo objeto operaciones • Forma básica :
. . . son objetos diferentes var1noesvar2
• Aplicación de funciones lambda: 'currificación' también conocida como {key-expr: valor-expresionporvaloren
Verifica si dos variables tienen Concatenar
derivando nuevas funciones a partir de existentes mediante
mismo valor
var1==var2 Lista/Tupla con v1, v2 colecciónifcondición}
Separador 'v3']) => 'v1,v2,v3'
aplicación parcial de argumentos. 3. Comprensión de Conjuntos
ADVERTENCIA: Use los operadores 'y', 'o', 'no' para string1= 'My name is{0} • Forma básica: igual que la comprensión de listas, excepto
ma60= lambda x: pd.media_rodante(x, {name}'
60) condiciones compuestas, no &&, ||, !. with curly braces instead of []
Cadena de formatonewString1=string1.
2. Uso
FUNCIONES ÚTILES (PARA ESTRUCTURAS DE común del operador 'for':
DATOS) formato('Sean', nombre= [Link] de listas anidadas
Iterando sobre una colección (es decir,forelementin
lista Chen
• Forma básica :
1. Enumerate devuelve una secuencia de tuplas (i, valor) o tupla) o un iterador iterator : sep=;-'
donde i es el índice del elemento actual. ... Si los elementos son secuencias, fora,b,cin
Dividir cadena srtnigLsi1t= [exprforvalincollectionfor
puede ser 'desempaquetar' iterator : [Link](sep) innerValinvalifcondition]
for i, valor en enumerate(colección): 3. 'pass' - declaración no operativa. Se utiliza en bloques donde no
• Application : Create a dict mapping of value se debe tomar acción. Obtener Subcadenainicio =1;cadena1[inicio:8]
de una secuencia (suponiendo que sea única) a sus 4. Expresión ternaria - también conocida como 'if else' menos verbosa Creado por Arianne Colton y Sean Chen
ubicaciones en la secuencia. [Link]@[Link]
• Forma básica : month= '5';
[Link] devuelve una nueva lista ordenada de cualquier secuencia Relleno de cadenasmonth.zfill(2) => '05' Basado en contenido de
valor=true-expresioncondición
elsefalse-expr con ceros month= '12'; ‘Python para el Análisis de Datos’ de Wes McKinney
sorted([2,1,3]) => [1,2,3]
5. No uses la instrucción switch/case, utiliza if/elif en su lugar. mes.zfill(2) => '12'
Actualizado: 3 de mayo de 2016

También podría gustarte