2010-04-08 18 views
7

Ho bisogno di ordinare la stringa, e mi è venuta in mente la seguente funzione.Ordinamento di elementi in stringa con Python

 
def mysort(comb_): 
    str = [] 
    size = len(comb_) 
    for c in comb_: 
     str.append(c) 
    str.sort() 
    return ''.join(str) 

C'è un modo per renderlo compatto?

risposta

19
return ''.join(sorted(comb_)) 
+0

Questa è la risposta corretta. Non può essere più succinto (o idiomatico) di quello. Ignorando lo strano trattino basso nel nome della variabile, ovviamente. – jemfinch

3
def sortstr(comb_): 
    return ''.join(sorted(comb_)) 

e: f; b :(

2

Se si desidera ottenere una stringa di nuovo fare questo:

def sort_string(string): 
    return "".join(sorted(string)) 

Ma se volete un elenco di nuovo, procedere come segue:

def sort_string(string): 
    return sorted(string) 
1
def sort_string(s): 
    def sort_string_to_a_list(s): 
     return sorted(s, lambda x,y: cmp(x.lower(), y.lower()) or cmp(x,y)) 
    sorted_list = sort_string_to_a_list(s) 
    return ''.join(sorted_list) 
Problemi correlati