Apuntes de Curso de Python
jmayuh6Apuntes9 de Agosto de 2020
8.076 Palabras (33 Páginas)131 Visitas
**funcion enumerate()
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for indice,numero in enumerate(numeros):
numeros[indice] *= 10
numeros
-->Resultado: [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
**lista literal con range
list(range(10))
-->Resultado: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
**funcion sum()
suma = sum( range(0, 101, 2) )
print(suma)
-->Resultado: 2550
FUNCIONES DE LAS STRINGS
**funcion split --> convierte una cadena a una lista segun las separaciones que hay
str.split([sep [,maxsplit]]) --> la separacion predeterminada es un espacio en blanco
Ejemplo:
1) "jesus mayuri hidalgo".split() --> ['jesus','mayuri','hidalgo']
2) "jesus#2017#fiis".split("#") --> ['jesus','2017','fiis']
**funcion join(hace lo contrario que split())
Conversion de listas a cadenas:
a=["hola","pepe","saludos"]
s1=" ".join(a)
-->Resultado: 'hola pepe saludos'
**funciones lower y upper
var.upper() var.lower()
**funciones booleanas variadas
isalpha() --> V si son puras letras.
isdigit() --> V si son puros digitos.
isalnum() --> V si son letras y/o numeros
islower() --> V si las letras son minusculas
isspace() --> V si son puros espacios en blanco,tabuladores o saltos de línea
isupper() --> V si las letras son mayúsculas.
**funciones de strings
str.find(substring) --> La primera ocurrencia del substring en el string (o -1 si no lo encuentra)
str.replace(oldstring,newstring,num_veces_a_reemplazar) --> Reemplaza las apariciones de un viejo substring con un nuevo substring
str.capitalize() --> "hola mundo".capitalize() >>> "Hola mundo"
str.title() --> "hola mundo".title() >>> "Hola Mundo"
str.count(substring) --> Indica la cantidad de veces que aparece la substring en la cadena
str.strip("-") --> "---Hola mundo-------".strip("-") >>>"Hola mundo"
COLECCIONES
TUPLAS Y LISTAS
**Metodos integrados de las colecciones
col.index(elemento) --> dice la posicion del elemento (primera aparicion) en la lista o tupla
col.count(elemento) --> cuantas veces aparece el elemento en la coleccion
col.append(elemento) --> elemento se agrega al final de la lista OJO: no sirve en tuplas ya que son inmutables
del tupla1 --> elimina la tupla
del lista[2] --> elimina por indice
lista.remove(elemento) --> elimina solo una y la primera vez que aparece dicho elemento
lista.pop(i) --> Quita el ítem en la posición dada de la lista, y lo devuelve
lista.insert(i,x) --> Inserta un ítem en una posición dada
list.sort(key=None, reverse=False) --> Ordena los ítems de la lista in situ
list.reverse() --> Invierte los elementos de la lista in situ.
Similar: lista[::-1]
list.copy() --> Devuelve una copia superficial de la lista. Equivalente a lista[:]
list1.extend(lista2) --> une dos lista una detras de otra
**Uso del remove para eliminar todos las veces que aparece cierto elemento en una lista:
values=[100, 200, 300, 400, 500, 500, 500, 500, 400]
while True:
if 500 in values:
values.remove(500)
else:
break
print(values)
Resultado>>> [100, 200, 300, 400, 400]
**Listas por compresión:
Ejemplos:
1) cuadrados = [x ** 2 for x in range(10)] --> [0,1,4,9,16,25,36,49,64,81]
2) [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
--> [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
Esto es equivalente a:
combs = []
for x in [1,2,3]:
for y in [3,1,4]:
if x != y:
combs.append((x, y))
3) vec = [[1,2,3], [4,5,6], [7,8,9]]
print([num for elem in vec for num in elem])
-->[1,2,3,4,5,6,7,8,9]
4) lista1=[4, 5, 6, 9, 11, 13]
lista2=[[2, 3, 9], [10, 13, 16] ,[7 , 20], [4, 11, 19]]
interseccion = [[x for x in sublist if x in lista1] for sublist in lista2]
print(interseccion)
--> [[9], [13], [], [4, 11]]
5) b=[3.1, 5.6, 0.9, -1.3, 0.7, 4.5]
s2="***".join([str(x) for x in b])
**Creacion y lectura de datos en una matriz bidimensional(mxn):
matriz=[0]*m
for i in range(m):
matriz[i]=[0]*n
for listas in matriz:
for i in range(len(listas)):
print("Elemento[",matriz.index(listas)+1,"][",i+1,"]: ",end="")
listas[i]=int(input())
**funcion zip()
numberList = [1, 2, 3]
strList = ['one', 'two', 'three']
result = zip(numberList, strList) --> crea objeto y se direcciona a result
resultList=list(result)
resultSet=set(result)
resultList
resultSet
--> Resultado:
[(1, 'one'), (2, 'two'), (3, 'three')]
set() --> conjunto vacio
--> Explicacion:
*Porque el zip se ha direccionado solo una vez por tanto tendriamos que hacer una copia nueva, antes de mostrar el set del zip
*OJO: Si los iterables son de distinto "len" el zip toma el de menor cantidad de elementos y lo trunca segun el orden de sus respectivos indices
CONJUNTOS: un conjunto no puede incluir objetos mutables como listas, diccionarios,
e incluso otros conjuntos.
**Definir a un conjunto vacio:
conjunto = set()
O sino definiendolo con llaves:
conjunto={1,2,3}
**Metodo add() --> conjunto.add(4)
Si se añade el 0 (conjunto.add(0)) --> Resultado: {0,1,2,3,4}
Ejemplo con letras:
conjunto.add('H')
conjunto.add('A')
conjunto.add('Z')
Resultado: {0, 1, 2, 3, 4, 'A', 'Z', 'H'}
**Metodo discard() --> hace lo contrario a add(), elimina
**Metodo clear() --> elimina todos los elementos
ENTONCES: Son colecciones desordenadas
Se dice que son desordenados porque gestionan automáticamente la posición de sus elementos,
en lugar de conservarlos en la posición que nosotros los añadimos
**Pertenencia de grupos
Operador logico "in":
grupo = {'Hector','Juan','Mario'}
'Hector' in grupo --> True
**Elementos unicos
test = {'Hector','Hector','Hector'}
Resultado --> {'Hector'}
**Conversion entre listas y conjuntos
lista = [1,2,3,3,2,1]
conjunto = set(lista)
lista = list(conjunto)
print(lista) --> [1,2,3]
lista=list(set(lista))
**Operaciones con conjuntos:
union: a|b ; c=a.union(b)
update: a.update(b) --> en el mismo conjunto: ahora a es el superconjunto
interseccion: a&b ; a.intersection(b) -->a.intersection_update(b)>>lo guarda en a
diferencia: a-b ; a.difference(b) -->a.difference_update(b)>>lo guarda en a
diferencia simetrica: a.symmetric_difference(b)
Metodos logicos: a.issubset(b), a.issuperset(b) -->subconjuntos de otro ;
a.isdisjoint(b) -->disjunto
DICCIONARIOS
**Definicion de un diccionario:
VACIO: vacio={}
Su estructura es clave:valor
colores={'amarillo':'yellow','azul':'blue'}
Para acceder a los valores se hace la consulta de la siguiente manera:
dict[clave] --> la clave tiene que ser NO MUTABLE: POR LO TANTO PUEDE SER UNA TUPLA
**Metodos:
del(colores['amarillo']) --> elimina el elemento de la colección(clave y valor)
del colores --> elimina el diccionario por completo
Ejemplos de otros metodos:
dic={1:'one',3:'three'}
dic.items() --> dict_items([(1, 'one'), (3, 'three')])
dic.keys() --> dict_keys([1, 3])
dic.values() --> dict_values(['one', 'three'])
dict.pop('key','No se encontro') --> elimina el elemento de clave 'key'
dict.clear() --> elimina todos los elementos del diccionario
dict.get('key_1','No se encontro') --> Si es que se encontro retorna el valor de la clave requerida
**Lectura secuencial (no en orden):
1)
edades = {'Hector':27,'Juan':45,'Maria':34}
for edad in edades:
print(edad)
--> Resultado: Esto solo nos da las claves
Maria
Hector
Juan
2)
for clave in edades:
print(edades[clave])
--> Resultado: Valores
34
27
45
...