Ordenar v/s ordenado

Ordenar v/s ordenado

La clasificación es una técnica para reorganizar los elementos o los datos en orden ascendente o orden descendente. En la programación de Python, podemos clasificar muy fácilmente con la ayuda de los métodos sort () y sorted ().

Los métodos sorted () y sort () organizan los elementos en orden ascendente o descendente. Incluso ambos realizan las mismas operaciones, pero aún así, son diferentes.

Para estos tutoriales, los usuarios deben tener algunas ideas básicas sobre la lista, las tuplas y los conjuntos. Utilizaremos algunas operaciones básicas de estas estructuras de datos para mostrar una imagen clara de los métodos incorporados sort () y sorted (). Y para esto, estoy usando python3, por lo que si está usando python2, entonces podría haber alguna diferencia de salida.

Ordenado ()::

La sintaxis para la función sorted () es:

ordenado (iterable, clave, reverso = falso)

Vamos a implementar la clasificación tanto en los datos de String como Integer utilizando el método integrado () incorporado.

La función sorted () aceptará un iterable y devolverá los elementos iterables ordenados, que estarán en orden ascendente por defecto. Por defecto, la función sorted () organiza elementos en orden ascendente porque el reverso = falso.

Números de clasificación

En el número de celda [4]: Creamos una lista numérica de números de nombres.

En el número de celda [5]: Llamamos a la función sorted () y pasamos la lista numérica (números) a esa. Tenemos la lista ordenada a cambio, que también es una nueva lista. La nueva lista significa que la lista original que pasamos al sorted () como parámetro no ha cambiado. Desde el número de celda [6], confirmamos que la lista original no cambia incluso después de que se aplique ().

La función Sorted () tiene las siguientes propiedades:

  • La función sorted () no es necesario definir antes de usar. Podemos llamarlo directamente como lo hicimos en el ejemplo anterior (número de celda [5]).
  • La función sorted () hará de forma predeterminada las arreglos de datos de orden ascendente si no pasamos ningún parámetro en eso.
  • La función Sorted () devuelve una nueva lista, que significa la lista original sin cambios, como se muestra en el número de celda de ejemplo anterior [6].

También podemos asignar los resultados Sorted () a una nueva variable como se muestra a continuación:


En el número de celda [13]: Creamos una lista numérica de números de nombres. Llamamos a la función sorted () y pasamos la lista numérica (números) a esa.

Luego asignamos el resultado de la función sorted () a una nueva variable sort_results para su uso posterior.

Aplicar sorted () en tuplas y conjuntos:

La función sorted () también funciona en tuplas y conjuntos para ordenar los elementos.


En el número de celda [15]: Creamos una tuple (num_tuple) y establecimos (num_sets).

En el número de celda [18]: Llamamos a la función ordenada y asignamos los resultados de retorno a nuevas variables (TUPLE_SORDED y SET_SORDED). Luego imprimimos los resultados y obtuvimos los datos ordenados. Pero los resultados están en el formato de lista, no en el formato de tuplas y establecidas a medida que pasamos los parámetros porque, por defecto, el ordenado devuelve los resultados en el formato de lista. Entonces, si queremos obtener los resultados en el mismo formato (conjuntos y tuplas), tenemos que usar un elenco.

En el número de celda [22]: Podemos ver desde la salida, ahora da como resultado el formato de la tupla y establecido como esperábamos porque mientras llamamos a la función Sorted (), también aplicamos el operador de fundición, que convierte la lista en el formato requerido.

Cadena de clasificación

Ahora, vamos a aplicar la función Sorted () en la lista de cadenas, como se muestra a continuación. Verá que antes de pasar la cadena a la función Sorted (), usamos el método Split () que el parámetro de formato predeterminado es espacio (dividido por espacio). La razón detrás de eso es obtener toda la cadena como una lista, pero dividir la cadena completa cuando llegue el espacio. Si no hacemos lo más abajo, toda la cadena se dividirá en cuanto al personaje y no obtendrá la salida correcta como lo deseamos.

Entonces, si no usamos el método Split () durante la cadena Ordenada (), obtendremos los resultados como a continuación:

Puede ver que toda la cadena cuando pasamos a la función Sorted (), devuelve la lista de caracteres. Ahora los resultados no están de acuerdo con nuestros requisitos.

Entonces, para superar este problema, tenemos que dividir () la cadena como se muestra a continuación. Estamos dividiendo la cadena aquí con espacio porque tenemos un personaje principal de espacio que separa las cuerdas. Pero no es una restricción; Puede usar cualquier formatero dentro del método Split () de acuerdo con las posiciones de su cadena.

En el número de celda [27]: Inicializamos una cadena y luego dividimos esa cadena desde el espacio como un formateador dividido. Y obtenemos la lista de cada cadena de toda la cadena en lugar de los caracteres de la cadena.

En el número de celda [28]: Llamamos a la función sorted () y pasamos esa str_value_list como parámetro en eso.

En el número de celda [29]: Finalmente imprimimos la lista de cadenas ordenadas devueltas por la función sorted (). En la celda [30], nuevamente imprimimos la lista original para confirmar que la lista original no cambia la función ().

Clasificación con el reverso = argumento verdadero

Ahora, cambiaremos el parámetro predeterminado de la función sorted () de falso a verdadero. Cuando cambiamos el valor del reverso de falso a verdadero, la función sorted () ordenará los datos en orden descendente.

En la célula [3]: Creamos una lista entera de números de nombres.

En la celda [4]: Pasamos la lista (números) a la función sorted (). Junto con eso, cambiamos lo contrario = verdadero. Debido al reverso = verdadero, obtuvimos los datos en orden descendente.

En la célula [5]: Imprimimos la lista original para confirmar que no ha cambiado la lista original.

Ordenar el caso de la cadena es importante

El Python usa el código Unicode para determinar el primer carácter de la cadena antes de clasificar el orden descendente o ascendente. De modo que la función Sorted () tratará el pequeño caso y los caracteres de la caja de capital, aunque lo mismo, como A o un valor, será diferente como se muestra a continuación:


Entonces, para entender esto, nuevamente escribimos un programa de clasificación de cadenas pequeñas.


En la célula [6]: Creamos una lista de nombres de cadenas con todo el capital de los primeros personajes.

En la célula [7]: Cuando ordenamos los nombres_case, obtuvimos el resultado deseado.

En la celda [8]: Cuando cambiamos el primer carácter de Harman a Harman y Apple a Apple y nuevamente ordenamos la lista, obtuvimos un resultado inesperado porque el resultado muestra que la cadena de Apple en la tercera posición en la lista que en realidad debería estar en la posición 1st en el índice de listas. Esto se hace debido al código unicode que Python usó para verificar su valor.

En la célula [11]: Imprimimos el primer nombre de personaje con su valor.

sorted () usando el parámetro clave

La función sorted () tiene una característica más poderosa que es el argumento clave. Esta clave espera una función, y cada elemento de la lista debe pasar a esta clave antes de generar la salida final.

Podemos entender esto a partir de este ejemplo básico de clasificación de cadenas. En el anterior, encontramos que Python usó el método unicode para determinar el valor del primer carácter, y luego, de acuerdo con eso, clasifica los elementos. Podemos superar esto utilizando las características clave, y nuestro resultado será de acuerdo con nuestras expectativas.


Ahora, podemos ver que desde el resultado, incluso si el primer carácter es pequeño o capital, estamos obteniendo resultados de acuerdo con nuestra expectativa porque la clave que pasamos convierte cada elemento en un pequeño caso antes de ir a la clasificación. Aún así, el valor original se imprimirá como hemos visto.

Función () función

La sintaxis de la función sort () es

lista.sort (clave, reverso = falso)

La principal diferencia entre la función sort () y sorted () es:


En la célula [18], Podemos ver que el método sort () es parte de la lista y no un método incorporado. El método sort () tampoco funciona con tuplas y conjuntos. El método sort () solo funciona con la lista, ya que es parte de la clase de lista.

Creamos una nueva lista y llamamos el método sort () mientras llamamos a sorted (), pero recibimos un error porque, como dijimos antes, no es un método incorporado.

Podemos llamar a esto solo usando la lista con el operador DOT como se muestra arriba en la sintaxis.

Así que nuevamente llamamos al método sort () con la lista (números), y nuestros datos se organizaron en orden ascendente como por defecto inverso = falso. Pero cuando imprimimos la lista original en el número de celda [28], descubrimos que la lista original también cambió porque el método sort () no devuelve un iterable.

Conclusión:

Entonces, hemos estudiado los métodos sort () y sorted (). También hemos visto que el método sort () no es un método integrado porque es una clase de lista y solo puede acceder al objeto de lista. Pero el método sorted () está incorporado y también puede funcionar con la tupla y los conjuntos.