Ejercicio 1 Clase 10
"""
comprueba con CADA letra
cual es la palabra mas
larga que la contiene
"""
def procText (texto):
dic = {}
conjunto = set ()
palabras = texto.split(" ")
for letra in texto:
if letra.isalpha():
conjunto.add(letra)
for letra in conjunto:
maximo = 0
palmax = ""
for pal in palabras:
if letra in pal:
if len(pal) > maximo:
maximo = len (pal)
palmax = pal
dic.update({letra:palmax})
return dic
def main ():
texto = "la casa grande"
dic = procText(texto)
print (dic)
main ()
Resultado
{'g': 'grande', 'r': 'grande', 's': 'casa', 'e': 'grande', 'c': 'casa', 'n': 'grande', 'd': 'grande', 'l': 'la', 'a': 'grande'}
Ejercicio 1 version simple
"""
tomar cada letra de un texto y
calcular cual es la palabra
mas larga que la contiene
"""
dic = {}
texto = "mi mama me mima mucho"
letras = []
for i in range (len(texto)):
if not texto [i] in letras:
letras.append(texto[i])
sepa = texto.split (" ")
for c in letras:
max = 0 ; palmax = " "
for p in sepa:
if c in p:
if len (p) > max:
max = len (p)
palmax = p
dic.update ({c:palmax})
print (dic)
Resultado
>>> %Run majuma_clase_10_ejercicio1.py
{'m': 'mucho', 'i': 'mima', ' ': ' ', 'a': 'mama', 'e': 'me', 'u': 'mucho', 'c': 'mucho', 'h': 'mucho', 'o': 'mucho'}
>>>
Ejercicios Iniciales con Diccionarios – 1
"""
Ejemplos multiples con diccionario
1 - Muestro valor de las claves
"""
def main ():
# creo un diccionario: recordar que es de a pares CLAVE:VALOR
#Las parejas de clave y valor se separan con comas, y la
#clave y el valor se separan con dos puntos.
d = {"Juan" : 7, "Lukas" : 9 , "Alfredo" : 9}
for k in (d) : # recorro el dic y muestro el valor de cada clave
print (d[k])
main ()
Resultado
>>> %Run majuma_clase_10_ejercicio2_dic.py
7
9
9
>>>
EJERCICIOS INICIALES CON DICCIONARIOS – 2
"""
Ejemplos multiples con diccionario
2 - Muestro la clave de los datos
"""
def main ():
# creo un diccionario: recordar que es de a pares CLAVE:VALOR
#Las parejas de clave y valor se separan con comas, y la
#clave y el valor se separan con dos puntos.
d = {"Juan" : 7, "Lukas" : 9 , "Alfredo" : 9}
for k in d : # recorro el dic y muestro cada clave
print (k)
main ()
Resultado
>>> %Run majuma_clase_10_ejercicio3_dic.py
Juan
Lukas
Alfredo
>>>
Ejercicio diccionario con varios ejemplos
"""
ejemplos con diccionario
"""
def main ():
#creo un diccionario
d = {"Juan" : 7, "Rosa" : 8 , "Alfredo": 9}
#creo otro diccionario
d2 = {"Lucas" : 8, "Jorge" : 8 , "Alberto": 9}
#agrego diccionario 2 (d2) a diccionario (d)
d.update(d2)
#borro elemento "Juan" de diccionario d
del d ["Juan"]
#compruebo si el elemento "Juan" esta, si no muestro mensaje
for key in d:
if "Juan " in d:
print ("Juan existe")
else:
print ("Juan no esta")
print (key, ":", d[key])
#reemplazo el elemento "Rosa" con un nuevo diccionario
d['Rosa'] = {"Franco" : 5, "Tiro" : 6 , "Sergio": 10}
print(d)
main ()
Resultado
>>> %Run 'ejemplo_diccionario_clase10 (1).py'
Juan no esta
Rosa : 8
Juan no esta
Alfredo : 9
Juan no esta
Lucas : 8
Juan no esta
Jorge : 8
Juan no esta
Alberto : 9
{'Rosa': {'Franco': 5, 'Tiro': 6, 'Sergio': 10}, 'Alfredo': 9, 'Lucas': 8, 'Jorge': 8, 'Alberto': 9}
>>>
Ejercicio avanzado con texto cargado de archivo
"""
Ejercicio avanzado de diccionario que examina un texto
cargado desde archivo y nos trae
el TOTAL de palabras distintas
las 10 palabras mas comunes
las palabras mas largas
las palabras mas comunes con mas de 3 letras
la cantidad de palabras distintas segun su cantidad de letras
ocurrencias totales segun cantidad de letras
"""
# Abrir archivo para lectura
nombrearchivo = 'texto_chernobil.txt'
with open(nombrearchivo) as archivo:
contador = {} # diccionario para guardar ocurrencia de palabras
grupo = {} # diccionario para agrupar palabras según su longitud
for linea in archivo:
palabras = linea.split() # separar línea en palabras, por espacio en blanco
for palabra in palabras:
palabra = palabra.lower().strip(".,") # cambiar a minúscula y quitar puntuación
if palabra not in contador:
contador[palabra] = 1
else:
contador[palabra] += 1
# Agrupar según longitud
longitud = len(palabra)
if longitud not in grupo:
grupo[longitud] = { palabra } # Usaremos un conjunto de palabras (sin repetir)
else:
grupo[longitud].add( palabra )
# Cerrar archivo al finalizar
archivo.close()
# Mostrar información
print('Total de palabras distintas:', len(contador))
print('Las diez palabras más comunes son:')
for palabra in sorted( contador, key = contador.get, reverse=True )[:10]:
print('\t',palabra,':',contador[palabra],'ocurrencias')
print('Las palabras más largas son:')
for palabra in sorted( contador, key = len, reverse=True )[:10]:
print('\t',palabra,':',len(palabra),'letras',contador[palabra],'ocurrencia(s)')
print('Las diez palabras más comunes (con más de 3 letras) son:')
for palabra in sorted( {x for x in contador if len(x)>3}, key = contador.get, reverse=True )[:10]:
print('\t',palabra,':',contador[palabra],'ocurrencias')
print('Cantidad de palabras distintas según su cantidad de letras')
print('\t','{:6s} {:}'.format('Letras','Palabras'))
for longitud in grupo:
print('\t','{:6d} {:7d}'.format(longitud, len(grupo[longitud]) ) )
print('Ocurrencias totales según cantidad de letras')
print('\t','{:6s} {:}'.format('Letras','Total palabras'))
for longitud in grupo:
palabras_longitud = 0
for palabra in grupo[longitud]:
palabras_longitud += contador[palabra]
print('\t','{:6d} {:7d}'.format(longitud, palabras_longitud) )
Resultado
>>> %Run 'diccionario_eri2 (1).py'
Total de palabras distintas: 245
Las diez palabras más comunes son:
de : 46 ocurrencias
la : 22 ocurrencias
en : 20 ocurrencias
y : 15 ocurrencias
el : 10 ocurrencias
que : 10 ocurrencias
accidente : 9 ocurrencias
del : 8 ocurrencias
000 : 8 ocurrencias
a : 7 ocurrencias
Las palabras más largas son:
sobrecalentamiento : 18 letras 1 ocurrencia(s)
descontaminaciã³n : 17 letras 2 ocurrencia(s)
medioambientales : 16 letras 1 ocurrencia(s)
expulsados,6​ : 15 letras 1 ocurrencia(s)
aproximadamente : 15 letras 1 ocurrencia(s)
chernã³bil1​ : 14 letras 1 ocurrencia(s)
desequilibrios : 14 letras 1 ocurrencia(s)
internacional : 13 letras 2 ocurrencia(s)
controversias : 13 letras 1 ocurrencia(s)
descontrolado : 13 letras 1 ocurrencia(s)
Las diez palabras más comunes (con más de 3 letras) son:
accidente : 9 ocurrencias
personas : 7 ocurrencias
nuclear : 6 ocurrencias
central : 4 ocurrencias
grandes : 3 ocurrencias
como : 3 ocurrencias
reactor : 3 ocurrencias
recibieron : 3 ocurrencias
radiactivos : 2 ocurrencias
descontaminaciã³n : 2 ocurrencias
Cantidad de palabras distintas según su cantidad de letras
Letras Palabras
2 18
9 13
14 2
3 23
7 24
8 31
5 30
4 20
11 15
1 7
6 22
10 23
13 5
16 1
12 7
18 1
15 2
17 1
Ocurrencias totales según cantidad de letras
Letras Total palabras
2 130
9 22
14 2
3 66
7 37
8 39
5 33
4 24
11 16
1 27
6 26
10 28
13 7
16 1
12 9
18 1
15 2
17 2
>>>