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.
Feu una funció average(s: set[float]) -> float
que retorni la mitjana dels elements d’un conjunt no buit.
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.
Feu una funció
has_duplicates(L: list[int]) -> bool que, donada una
llista, indiqui si aquesta té o no algun elements duplicat.
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.
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.
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.
Cada funció puntua 16 punts i l’exemple 4.
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