Salta el contingut
 

Exercicis: Diccionaris

Joan Puigcerver Ibáñez

j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Objectius

Els objectius d'aquests exercicis són:

  • Conéixer l'estructura de dades dict.
  • Conéixer les operacions bàsiques amb diccionaris.
  • Recórrer diccionaris amb bucles.
  • Combinar diccionaris amb llistes.

Els exercicis marcats amb ✅ seran corregits a classe.

Estructura del projecte

Tots els exercicis han de complir amb la següent estructura:

  • Cada exercici ha d'anar dins del directori corresponent.
  • El nom del fitxer ha de coincidir amb el títol de l'exercici.
  • El format de l'eixida del programa ha de ser consistent amb el format demanat.

Exercicis

ud3/exercises/dicts

word_counter.py

Crea un programa que compte el nombre d'ocurrències de cada paraula en un text.

El programa ha de llegir un text de l'usuari (una sola línia) i mostrar quantes vegades apareix cada paraula, ordenades alfabèticament.

Exemple d'entrada i eixida
Entrada
Hola món hola Python món món Python
Eixida
hola: 2
món: 3
python: 2
Ampliació: ordenació per aparicions

Modifica el programa anterior perquè l'eixida mostre les paraules ordenades per:

  1. Nombre d'aparicions.
  2. En cas d'empat, en ordre alfabètic.
Entrada
Hola món hola Python món món Python
Eixida
món: 3
hola: 2
python: 2

letter_frequency.py

Crea un programa que analitze la freqüència de cada lletra en un text.

El programa ha de llegir un text de l'usuari i mostrar la freqüència de cada lletra (sense distingir majúscules de minúscules), ordenades de major a menor freqüència.

Consell

  • Utilitza el mètode lower() per convertir el text a minúscules.
  • Ignora els espais i caràcters que no siguen lletres.
Exemple d'entrada i eixida
Introdueix un text: Hola món, això és Python!
o: 3
n: 2
h: 2
l: 1
a: 1
m: 1
i: 1
x: 1
s: 1
p: 1
y: 1
t: 1

translate_dict.py

Crea un programa que traduïsca paraules de l'anglès al valencià.

El programa ha de:

  1. Crear un diccionari amb almenys 10 paraules en anglès i la seua traducció.

    Exemple de diccionari
    translations = {
        "hello": "hola",
        "world": "món",
        "cat": "gato",
        "dog": "gos",
        "food": "menjar",
        "water": "aigua",
        "house": "casa",
        "car": "cotxe",
        "book": "llibre",
        "computer": "ordinador"
    }
    
  2. Llegir una frase en anglès.

  3. Traduir cada paraula al valencià si existeix en el diccionari.
    • Si no existeix, deixar-la igual.
  4. Mostrar la traducció completa.
Exemple d'entrada i eixida
Introdueix una frase en anglès: hello world this is Python
Traducció: hola món this is Python

phonebook.py

Crea un programa que gestione una agenda telefònica simple.

El programa ha de permetre a l'usuari:

  1. Afegir un contacte (nom i telèfon).
  2. Buscar un contacte per nom.
  3. Eliminar un contacte.
  4. Mostrar tots els contactes.
  5. Eixir.
Exemple d'entrada i eixida
=== AGENDA TELEFÒNICA ===
1. Afegir contacte
2. Buscar contacte
3. Eliminar contacte
4. Mostrar tots els contactes
5. Eixir
Opció: 1
Nom: Joan
Telèfon: 123456789
Contacte afegit.

=== AGENDA TELEFÒNICA ===
1. Afegir contacte
2. Buscar contacte
3. Eliminar contacte
4. Mostrar tots els contactes
5. Eixir
Opció: 1
Nom: Maria
Telèfon: 987654321
Contacte afegit.

=== AGENDA TELEFÒNICA ===
1. Afegir contacte
2. Buscar contacte
3. Eliminar contacte
4. Mostrar tots els contactes
5. Eixir
Opció: 4
Joan: 123456789
Maria: 987654321

=== AGENDA TELEFÒNICA ===
1. Afegir contacte
2. Buscar contacte
3. Eliminar contacte
4. Mostrar tots els contactes
5. Eixir
Opció: 2
Nom: Joan
Telèfon de Joan: 123456789

=== AGENDA TELEFÒNICA ===
1. Afegir contacte
2. Buscar contacte
3. Eliminar contacte
4. Mostrar tots els contactes
5. Eixir
Opció: 3
Nom: Maria
Contacte eliminat.

=== AGENDA TELEFÒNICA ===
1. Afegir contacte
2. Buscar contacte
3. Eliminar contacte
4. Mostrar tots els contactes
5. Eixir
Opció: 5
Adéu!

dict_utils.py

Crea un mòdul que implemente els següents mètodes per a treballar amb diccionaris:

  • merge_dicts(dict1, dict2): Combina dos diccionaris en un de nou.

eleccio_delegat.py

Crea un programa que indique quin alumne ha estat elegit delegat de classe segons els vots dels companys.

El programa ha de:

  • Demanar els vots dels alumnes fins que s'escriga una línia buida.
  • Comptar els vots i determinar quin alumne ha rebut més vots.

Implementeu els següents mètodes:

  1. read_votes(): Llegeix els vots dels alumnes i els retorna en una llista.

    >>> votes = read_votes()
    Carla
    Joan
    Maria
    Carla
    Joan
    Carla
    
    ['Carla', 'Joan', 'Maria', 'Carla', 'Joan', 'Carla']
    
  2. count_votes(votes): Rep una llista de vots i retorna un diccionari amb el nombre de vots per a cada alumne.

    >>> vote_count = count_votes(votes)
    {'Carla': 3, 'Joan': 2, 'Maria': 1}
    
  3. max_votes(vote_count): Rep un diccionari de vots i retorna els vots màxims.

    >>> max_vote = max_votes(vote_count)
    3
    
  4. elected_students(vote_count_dict, count): Rep un diccionari de vots i un nombre de vots, i retorna una llista amb els alumnes que han rebut eixe nombre de vots.

    >>> elected = elected_students(vote_count, max_vote)
    ['Carla']
    

group_by_initial.py

Crea un programa que agrupe paraules per la seua inicial.

El programa ha de llegir una llista de paraules i crear un diccionari on les claus són les lletres inicials i els valors són llistes de paraules que comencen amb eixa lletra.

El programa ha de continuar llegint paraules fins que l'usuari introduïsca una línia buida.

Exemple d'entrada i eixida
Paraula: poma
Paraula: pera
Paraula: plàtan
Paraula: maduixa
Paraula: meló
Paraula: taronja
Paraula: pebrot
Paraula: melocotó
Paraula:

Paraules agrupades per inicial:
p: ['poma', 'pera', 'plàtan', 'pebrot']
m: ['maduixa', 'meló', 'melocotó']
t: ['taronja']
📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.