2012-07-12 19 views
10
x = 'yellow' 
print(sorted(x)) 

powracaSortowanie liter jednego napisu tekstowego w Pythonie?

['e', 'l', 'l', 'o', 'w', 'y'] 

Co chcę, aby powrócić

ellowy

Jak przebiegała robię to powrót 'ellowy' bez liter znajdujących się w liście?

+0

Dziękuję wszyscy za bardzo szybkie odpowiedzi. Bardzo pomocne. –

+3

Mimo, że stackoverflow jest doskonałym źródłem, należy pamiętać, że łatwo uzyskałbyś odpowiedź przez googleing "list do string python" Jestem 100% pozytywny, pierwszy wynik będzie poprawnym rozwiązaniem. Nie obwiniam cię jednak, czasami trudno jest znaleźć właściwe hasła do google, nie zaszkodzi i cieszę się, że to zrozumiesz! – Trufa

Odpowiedz

16

Właściwie sorted() stosowany na sznurku zawsze zwraca lista pojedynczych znaków. , więc powinieneś użyć str.join(), aby utworzyć ciąg z tej listy.

>>> x = 'yellow' 
>>> ''.join(sorted(x)) 
'ellowy' 
9
x = 'yellow' 
print(''.join(sorted(x))) 
+2

Trzy identyczne (poprawne) odpowiedzi w tym samym czasie .. jedynym rozwiązaniem jest przejęcie ich wszystkich. – zebediah49

11

join() metoda ciąg dołącza każdy element jego kłótni z kopii danego obiektu String jako separatora między każdej pozycji. Wiele osób uważa to dziwne i nieintuicyjne sposób, aby robić rzeczy, ale poprzez łączenie elementów z pustym ciągiem można przekonwertować listy ciągów w jeden ciąg:

x = 'yellow' 
print(''.join(sorted(x))) 
+0

lol .. 3 sekundy szybciej !! :) –

4

Jeśli chcesz Guido do hate, spróbuj:

reduce(lambda l,r: l+r, sorted(x)) 

;-)

w Pythonie 3 będzie trzeba importować go z opakowania functools

+0

lol - downvote dla? bluźnierstwo? :-) –

+1

Nie spadłem, ale może było to dla zbyt skomplikowanego rozwiązania prostego problemu? :) – Trufa

+3

-0 za "technicznie poprawny - najlepszy rodzaj poprawny!" –

Powiązane problemy