<|im_start|>user
En llenguatge de programació Python, quina diferència hi ha en fer servir els mètodes sort() o sorted() per ordenar una llista?<|im_end|>
<|im_start|>assistant
En Python, sort() i sorted() són dues maneres diferents d'ordenar una llista, però tenen diferències importants en el seu funcionament i ús:

sort():
És un mètode de les llistes, és a dir, s'aplica directament sobre la llista que es vol ordenar.
Modifica la llista original ordenant els seus elements in situ, és a dir, no crea una nova llista com a resultat.
No retorna cap valor, o més específicament, retorna None. Per tant, no es pot utilitzar en expressions o com a argument d'una altra funció.
Funciona només amb objectes de tipus llista.
Exemple d'ús de sort():

Codi python:

llista = [3, 1, 4, 1, 5, 9, 2]
llista.sort()
print(llista)  # Resultat: [1, 1, 2, 3, 4, 5, 9]
sorted():
És una funció integrada de Python, no un mètode de les llistes. Això significa que es pot utilitzar amb qualsevol objecte iterable, com llistes, tuples o conjunts.
Retorna una nova llista amb els elements ordenats, sense modificar l'objecte iterable original.
Com que retorna una llista, es pot utilitzar en expressions o com a argument d'una altra funció.
Exemple d'ús de sorted():

Codi python:
llista = [3, 1, 4, 1, 5, 9, 2]
llista_ordenada = sorted(llista)
print(llista)  # Resultat: [3, 1, 4, 1, 5, 9, 2] (llista original no modificada)
print(llista_ordenada)  # Resultat: [1, 1, 2, 3, 4, 5, 9] (nova llista ordenada)

En resum, la principal diferència entre sort() i sorted() és que sort() modifica la llista original i no retorna cap valor, mentre que sorted() no modifica l'objecte iterable original i retorna una nova llista amb els elements ordenats.<|im_end|>
