Se supone que debo tomar una lista de palabras y ordenarla, excepto que necesito agrupar todas las cadenas que comiencen con 'x' primero.¿Una forma más pitónica de escribir esta expresión?
Esto es lo que tengo:
list_1 = []
list_2 = []
for word in words:
list_1.append(word) if word[0] == 'x' else list_2.append(word)
return sorted(list_1) + sorted(list_2)
Pero tengo la sensación de que hay una manera mucho más elegante de hacer esto ...
EDITAR
Ejemplo: ['mix', 'xyz', 'apple', 'xanadu', 'aardvark']
rendimientos ['xanadu', 'xyz', 'aardvark', 'apple', 'mix']
.
+1, me tomó un momento comprenderlo. –
No entiendo por qué esto funciona. ¿Es cierto siempre mayor que x? – helpermethod
@Helper: compara tuplas, cuyo primer elemento es 'False' o' True'. De esta forma, todas las tuplas tienen 'False' como primer elemento que precede a todas las tuplas que tienen' True' como primer elemento. Cuando los primeros elementos son iguales, la comparación se realiza en función del segundo elemento, que en este caso también es de tipo alfabético estándar. – SilentGhost