Red de conocimiento informático - Problemas con los teléfonos móviles - Clasificación, tecnología de clasificación (clasificación multinivel)

Clasificación, tecnología de clasificación (clasificación multinivel)

La lista de Python tiene un método sort() incorporado. También puede usar el método sort() global incorporado de Python para ordenar la secuencia iterable y generar una nueva secuencia.

Ejemplo:

1) Conceptos básicos de clasificación

La clasificación ascendente simple es muy fácil. Simplemente llame al método ordenado (). Devolverá una nueva lista cuyos elementos se ordenarán según el operador menor que (lt).

También puedes utilizar el método list.sort() para ordenar, en cuyo caso se modificará la lista en sí. Este método es generalmente menos conveniente que el método sorted(), pero puede ser más eficiente si no necesita conservar la lista original.

Otra diferencia es que el método list.sort() solo se define para listas, mientras que el método sorted() se aplica a todas las secuencias iterables.

2) Parámetros/funciones clave

A partir de Python 2.4, las funciones list.sort() y sorted() agregan un parámetro clave que especifica el valor que se llamará antes de comparar cada uno. elemento. Por ejemplo, una función especificada por clave ignora las mayúsculas y minúsculas de la cadena:

El valor del argumento clave es una función que toma un argumento y devuelve un valor para comparar. Esta técnica es rápida ya que la función especificada por la clave se llamará exactamente en cada elemento.

Un caso de uso más común es ordenar una secuencia de objetos complejos en función de algún valor del objeto complejo, por ejemplo:

La misma técnica también funciona para objetos complejos con propiedades con nombre , Por ejemplo:

3) Función del módulo operador (clasificación multinivel)

Los parámetros clave anteriores se usan tan ampliamente que Python proporciona algunas funciones convenientes para facilitar los métodos de acceso. más rápido. Los módulos de operador tienen métodos itemgetter, attrgetter y, desde 2.6, llamador de métodos. Usando estos métodos, la operación anterior será más concisa y rápida:

El módulo del operador también permite la clasificación en varios niveles, por ejemplo, primero ordenar por grado y luego por edad:

4 ) Orden ascendente y descendente

Tanto list.sort() como sorted() aceptan un parámetro inverso (Verdadero o Falso) para indicar ordenación descendente o ascendente.

Por ejemplo, el proceso de ordenar a los estudiantes anteriores en orden descendente es el siguiente:

5) Estabilidad de clasificación y clasificación compleja

A partir de Python 2.2 , se garantiza que la clasificación es estable. Esto significa que el orden de varios elementos con la misma clave no cambia antes y después de la clasificación.

Tenga en cuenta que el orden de "azul" permanece sin cambios después de ordenar, es decir, "azul", 1 viene antes de "azul", 2.

Para aumentar la complejidad, puede crear varios pasos para realizar una clasificación más compleja; por ejemplo, primero ordene los datos de los estudiantes por grado en orden descendente y luego por edad en orden ascendente.