una tuplas tupla recursividad ordenar listas lista con como ascendentemente anidadas alfabeticamente python list sorting alphabetical

tuplas - Estructura de datos de Python ordena la lista alfabéticamente



ordenar una tupla python (6)

Estoy un poco confundido con respecto a la estructura de datos en Python; () , [] y {} . Estoy tratando de ordenar una lista simple, probablemente porque no puedo identificar el tipo de datos que estoy fallando para ordenarlos.

Mi lista es simple: [''Stem'', ''constitute'', ''Sedge'', ''Eflux'', ''Whim'', ''Intrigue'']

Mi pregunta es ¿qué tipo de datos es esto y cómo ordenar las palabras alfabéticamente?


Estás tratando con una lista de Python, y ordenarla es tan fácil como hacer esto.

my_list = [''Stem'', ''constitute'', ''Sedge'', ''Eflux'', ''Whim'', ''Intrigue''] my_list.sort()


Puede usar la función sorted incorporada.

print sorted([''Stem'', ''constitute'', ''Sedge'', ''Eflux'', ''Whim'', ''Intrigue''])


Python tiene una función incorporada llamada sorted , que te dará una lista ordenada de cualquier iterable que alimentes (como una lista ( [1,2,3] ); a dict ( {1:2,3:4} , aunque solo devolverá una lista ordenada de las claves: un conjunto ( {1,2,3,4 ); o una tupla ( (1,2,3,4) )).

>>> x = [3,2,1] >>> sorted(x) [1, 2, 3] >>> x [3, 2, 1]

Las listas también tienen un método de sort que realizará el ordenamiento in situ.

>>> x = [3,2,1] >>> x.sort() >>> x [3, 2, 1]

Ambos también toman un argumento key , que debe ser invocable (función / lambda) que puede usar para cambiar el orden por el cual se va a ordenar.
Por ejemplo, para obtener una lista de pares (key,value) de un diccionario que está ordenado por valor, puede usar el siguiente código:

>>> x = {3:2,2:1,1:5} >>> sorted(x.items(), key=lambda kv: kv[1]) # Items returns a list of `(key,value)`-pairs [(2, 1), (3, 2), (1, 5)]


ListName.sort() lo ordenará alfabéticamente. Puede agregar reverse=False/True en los corchetes para invertir el orden de los elementos: ListName.sort(reverse=False)


[] denota una list , () denota una tuple y {} denota un dictionary . Deberías echarle un vistazo al tutorial oficial de Python ya que estos son los principios básicos de la programación en Python.

Lo que tienes es una lista de cadenas. Puedes ordenarlo así:

In [1]: lst = [''Stem'', ''constitute'', ''Sedge'', ''Eflux'', ''Whim'', ''Intrigue''] In [2]: sorted(lst) Out[2]: [''Eflux'', ''Intrigue'', ''Sedge'', ''Stem'', ''Whim'', ''constitute'']

Como puede ver, las palabras que comienzan con una letra mayúscula obtienen preferencia sobre aquellas que comienzan con una letra minúscula. Si desea ordenarlos de forma independiente, haga esto:

In [4]: sorted(lst, key=str.lower) Out[4]: [''constitute'', ''Eflux'', ''Intrigue'', ''Sedge'', ''Stem'', ''Whim'']

También puede ordenar la lista en orden inverso al hacer esto:

In [12]: sorted(lst, reverse=True) Out[12]: [''constitute'', ''Whim'', ''Stem'', ''Sedge'', ''Intrigue'', ''Eflux''] In [13]: sorted(lst, key=str.lower, reverse=True) Out[13]: [''Whim'', ''Stem'', ''Sedge'', ''Intrigue'', ''Eflux'', ''constitute'']

Tenga en cuenta: si trabaja con Python 3, entonces str es el tipo de datos correcto para cada cadena que contenga texto legible por humanos. Sin embargo, si todavía necesita trabajar con Python 2, entonces podría tratar con cadenas unicode que tienen el tipo de datos unicode en Python 2, y no en str . En tal caso, si tiene una lista de cadenas Unicode, debe escribir key=unicode.lower lugar de key=str.lower .


>>> a = () >>> type(a) <type ''tuple''> >>> a = [] >>> type(a) <type ''list''> >>> a = {} >>> type(a) <type ''dict''> >>> a = [''Stem'', ''constitute'', ''Sedge'', ''Eflux'', ''Whim'', ''Intrigue''] >>> a.sort() >>> a [''Eflux'', ''Intrigue'', ''Sedge'', ''Stem'', ''Whim'', ''constitute''] >>>