Funcions amb conjunts P92616


Statement
 

pdf   zip

En aquest problema heu d’implementar una sèrie de funcions en Python utilitzant conjunts. Cada funció hauria de tenir una implementació ben curta i simple.

  1. Feu una funció @average(s: set[float]) -> float@ que retorni la mitjana dels elements d’un conjunt no buit.

  2. Feu una funció @different_elements(l1: list[int], l2: list[int]) -> int@ que, donades dues llistes, retorni el nombre d’elements diferents que contenen entre les dues.

  3. Feu una funció @has_duplicates(L: list[int]) -> bool@ que, donada una llista, indiqui si aquesta té o no algun elements duplicat.

  4. A partir d’una llista @l1@, s’ha generat una llista @l2@ permutant a l’atzar els seus elements i afegint un nou element (en alguna posició). Implementeu una funció
    @extraneous(l1: list[str], l2: list[str]) -> str@ que retorni el nou element.

  5. A partir d’una llista @l1@, s’ha generat una llista @l2@ permutant a l’atzar als seus elements i, potser, afegint un nou element (en alguna posició). Implementeu una nova funció @extraneous_maybe(l1: list[str], l2: list[str]) -> Optional[str]@ que retorni el nou element si s’ha afegit o None si n’hi ha cap de nou.

  6. Feu una funció @different_words(s: str) -> int@ que, donat un text format per paraules separades per espais, retorni el nombre total de paraules diferents. Les majúscules/minúscules no han d’importar.

Puntuació

Cada funció puntua 16 punts i l’exemple 4.

Exemple de sessió

Public test cases
  • Input

    print(round(average(set([12.0, 8.5, 9.5])), 2))
    print(different_elements([1, 1, 3, 2], [3, 2, 2, 5]))
    print(has_duplicates([4, 5, 3]))
    print(has_duplicates([4, 5, 3, 5]))
    print(extraneous(['emma', 'jordi', 'albert'], ['albert', 'emma', 'enric', 'jordi']))
    print(extraneous_maybe(['emma', 'jordi', 'albert'], ['albert', 'emma', 'enric', 'jordi']))
    print(extraneous_maybe(['emma', 'jordi', 'albert'], ['albert', 'emma', 'jordi']))
    print(different_words('La mare renya la nena'))

    Output

    10.0
    4
    False
    True
    enric
    enric
    None
    4
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python