Usando list.sort() en Python
ordenado(itrearble, cmp=None, key=None, reverse=False)
Después del símbolo = está el valor predeterminado. El valor predeterminado es orden ascendente. el resultado esté en orden descendente, luego use reverse=True
Los resultados ordenados se colocarán en una nueva lista. en lugar de modificar el iterador en sí.
por ejemplo:
1, clasificación simple
cadena ordenada('123456')
) lista
[1, 2, 3, 4, 5, 6]
ordenado({1: diccionario, las claves del diccionario están ordenadas por defecto
[1, 2, 3] p>
ordenado({1:'q', 3:'c', 2:'g'}.keys()) Ordenado({1:'q', 3:'c', 2: 'g '}. Sort ({1: 'q', 3: 'c', 2: 'g'}.values()) representa valores del diccionario
['c', 'g', 'q ']
sorted({1: 'q', 3: 'c', 2: 'g'}.items()) es una lista de tuplas compuestas por pares clave-valor p>
[(1, 'q'), (2, 'g'), (3, 'c')]
2, Ordenar elementos para especificar una determinada parte, ordenar por palabras clave
s = ['Chr1-10.txt', 'Chr1-1.txt', 'Chr1-2.txt', 'Chr1-14.txt', 'Chr1-3.txt', ' Chr1- 20.txt', 'Chr1-5.txt']
Quiero ordenar los números después de "-" en orden ascendente usando la tecla
sorted(s, key= lambda d: int(d.split('-')[-1].split('.') [0]))
['Chr1-1.txt', 'Chr1- 2. txt', 'Chr1-3.txt', 'Chr1-5.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1-20.txt']
Esto es lo que formula la clave de clasificación. Sin convertir la clave a un número entero, el resultado se vería así:
sorted(s, key=lambda d: d.split('-' )[-1. ].split('.') [0])
['Chr1-1.txt', 'Chr1-10.txt', 'Chr1-14.txt', 'Chr1 -2.txt ', 'Chr1-20.txt', 'Chr1-3.txt', 'Chr1-5.txt']
Esto equivale a tratar la palabra clave como una cadena. Obviamente, en Python, '. 2' > '10'
Puedes personalizar la clave que desees, por ejemplo: key = lambda x: len(x) por la longitud de la secuencia.