Hable sobre la diferencia entre el método list.sort () y la función sorted () en Python

(1) método list.sort ()

El método list.sort () ordena en el lugar, lo que significa que actuará directamente en la lista actual y convertirá directamente la lista actual en una lista ordenada. Devolverá Ninguno. En Python, si una función o método modifica un objeto en su lugar, en general, devolverán Ninguno. El propósito de esto es que los usuarios de la API sepan que esta función o método se modificó en su lugar. Por ejemplo, la función random.shuffle también tiene esta característica.

El método shuffle () ordenará aleatoriamente todos los elementos de la secuencia.

Hay ventajas y desventajas, porque estas funciones o métodos solo pueden devolver None, por lo que no se pueden conectar una por una como la programación de transmisión.

(2) La función incorporada ordenada ()

La función incorporada ordenada acepta cualquier forma de objeto iterable como parámetro de entrada y crea una nueva lista como valor de retorno.

(3) Parámetros de palabras clave

El método list.sort () y la función incorporada sorted () tienen los siguientes dos parámetros de palabras clave opcionales.

Parámetro de palabra clave Defaults Descripción
contrarrestar Falso Orden inverso
llave Orden de valor Algoritmo de clasificación; str.lower: ordena ignorando el caso; len: ordena según la longitud de la cadena

(4) Ejemplo

Luciano Ramalho dio un ejemplo de este tipo para ilustrar la diferencia entre el método list.sort () y la función sorted ().

fruits=['grape','raspberry','apple','banana']
result=sorted(fruits)
logging.info('sorted(fruits) -> %s',result)
logging.info('fruits -> %s',fruits)

result=sorted(fruits,reverse=True)
logging.info('sorted(fruits,reverse=True) -> %s',result)

result=sorted(fruits,key=len)
logging.info('sorted(fruits,key=len) -> %s',result)

result=sorted(fruits,reverse=True,key=len)
logging.info('sorted(fruits,reverse=True,key=len) -> %s',result)

result=fruits.sort()
logging.info('sort() -> %s',result)
logging.info('fruits.sort() from fruits-> %s',fruits)

resultado de la operación:

INFO - sorted(fruits) -> ['apple', 'banana', 'grape', 'raspberry']
INFO - fruits -> ['grape', 'raspberry', 'apple', 'banana']
INFO - sorted(fruits,reverse=True) -> ['raspberry', 'grape', 'banana', 'apple']
INFO - sorted(fruits,key=len) -> ['grape', 'apple', 'banana', 'raspberry']
INFO - sorted(fruits,reverse=True,key=len) -> ['raspberry', 'banana', 'grape', 'apple']
INFO - sort() -> None
INFO - fruits.sort() from fruits-> ['apple', 'banana', 'grape', 'raspberry']

Puede ver que el método list.sort () está ordenado en su lugar, y la función sorted () no afecta al objeto original, devolverá un nuevo objeto que ha sido ordenado.

Supongo que te gusta

Origin blog.csdn.net/deniro_li/article/details/108893027
Recomendado
Clasificación