Funcions amb conjunts P92616


Statement
 

pdf   zip

html

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.

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