Por ejemplo, si un archivo .txt consiste en: coche y día

Quiero hacerlos en orden alfabético: acr y ady

Esto es lo que tengo en mi código en este momento:

def read_file(fileName):
    list = []
    with open(fileName) as f:
         list = f.read().split()
         list.sort()
    return list

Simplemente no se ordenará de la manera que quiero, ¿necesito un bucle anidado para?

0
Gekz 27 oct. 2017 a las 04:30

3 respuestas

La mejor respuesta

Parece que necesitas esto:

def read_file(fileName):
    with open(fileName) as f:
        a_list = f.read().split()
        result = ' '.join([''.join(sorted(a)) for a in a_list])
    return result
2
Tiny.D 27 oct. 2017 a las 01:38

Debe ordenar las letras de cada palabra, no las palabras en sí mismas:

string = "car and day"
" ".join(["".join(sorted(word)) for word in string.split()])
1
Julien 27 oct. 2017 a las 01:38

En lugar de list.sort ():

# don't use `list` as variable
lyst = f.read().split()
" ".join(["".join(sorted(list(i))) for i in lyst])
0
Serg Anuke 27 oct. 2017 a las 01:41