2016-10-07 2 views
-3

sort() 함수가 있음을 알고 있지만, 여기서는 나에게 도움이되지 않습니다.문자열의 파이썬으로 알파벳 순으로 정렬하십시오.

'S NOM V NOUN VERB' 

그것은해야한다 :

이 가

은 어떻게 파이썬에서 것을 달성 할 수

'NOM NOUN S VERB V' 
다음과 같은 I는 알파벳 문자열을 주문 하시겠습니까?

편집 : 나는 시도

:

''.join(sorted(m[i][j])) 

하지만이 이해가되지 않습니다 예를 들어 ABEILMNNNNOOPRSUVV 같은 매우 변경된 출력으로 돌아왔다.

+1

것 같습니다. 대부분의 사용자는 곤경에 처한 코더 코드를 기꺼이 만들지 만 일반적으로 포스터가 이미 문제를 해결하려고 시도했을 때만 도움이됩니다. 이러한 노력을 입증하는 좋은 방법은 지금까지 작성한 코드, 예제 입력 (있는 경우), 예상 출력 및 실제로 얻은 출력 (콘솔 출력, 역 추적 등)을 포함시키는 것입니다. 더 자세하게 제공할수록 더 많은 답변을받을 수 있습니다. [FAQ]와 [ask]를 확인하십시오. – idjaw

+3

split-sort-join –

+0

@ idjaw, 이미 시도한 바를 말했습니다. – genuis

답변

1

다음을 시도해보십시오 :

x = 'S NOM V NOUN VERB' 
x = x.split() # produces ['S', 'NOM', 'V', 'NOUN', 'VERB'] 
x = sorted(x) # produces ['NOM', 'NOUN', 'S', 'V', 'VERB'] 
x = ' '.join(x) # produces 'NOM NOUN S V VERB' 

당신은 당신이 반전되는 V와 동사의 순서합니다 (sorted 기능에 대한 '키'키워드를 참조하려면 기능을 사용자 정의 정렬을 사용해야합니다).

+0

using sorted is 여기 내가 생각하는 열쇠! – genuis

-1

문자열을 목록으로 분할 한 다음 정렬하여 다시 문자열로 변환해야합니다. 다음은 그 예입니다.

old_string = "hello world abc" 
string_list = old_string.split(" ") # split the string by a space, you can choose something different. 
new_string = " ".join(string_list.sort()) # join list by a space. 
print(new_string) 
+1

'sort()'가 "in place"에서 작동하기 때문에 작동하지 않습니다. 원래의 목록을 변경하고 새로운 것을 반환하지 않습니다 – furas

+0

sorted를 사용하고 정렬을 사용하지 않습니다 – genuis

3

이미 하나 이상의 답변이 있습니다. 당신은 함수로뿐만 아니라 추상적 수도 : 당신이 우리가 당신을 위해 몇 가지 코드를 작성하려는처럼

예를 들어
def sortWords(s, delim = ' '): 
    return delim.join(sorted(s.split(delim))) 

,

>>> sortWords('S NOM V NOUN VERB') 
'NOM NOUN S V VERB' 
관련 문제