文字列に[Level 1]Pythonを任意に並べ替える


問題の説明


リスト文字列が文字列で構成され、整数nを有する場合、各文字列のインデックスnのn番目の文字に基づいて昇順にソートしようとします.たとえば、文字列が[「sun」、「bed」、「car」であり、nが1の場合、文字列は各単語インデックス1の文字「u」、「e」、および「a」でソートされます.

せいげんじょうけん


stringは、長さが1以上50未満の配列である.
stringの要素は小文字で構成されています.
stringの要素は、1または100より長い文字列です.
すべての文字列の要素長はnより大きい.
インデックス1に同じ文字列を持つ複数の文字がある場合、前の文字列はアルファベット順に前に並べられます.

I/O例



I/O例説明


I/O例1
「sun」、「bed」および「car」の最初のインデックス値は、それぞれ「u」、「e」および「a」である.文字列を整列させると、car、bad、sunになります.
I/O例2
「abce」および「abcd」、「cdx」の2番目のインデックス値は、それぞれ「c」、「c」および「x」である.したがって、ソート後、「cdx」は最後に位置します.「abce」および「abcd」は、アルファベット順に「abcd」よりも優先されるため、答えは「abcd」、「abce」および「cdx」である.

コード#コード#

def solution(strings, n):
    answer = []
    a_dict = {}
    strings.sort()
    
    for idx, s in enumerate(strings):
        a_dict[idx] = s[n]
        
    a_dict = sorted(a_dict.items(), key=lambda x : x[1]) # Value 값에 따른 정렬
    
    for i in a_dict:
        answer.append(strings[i[0]])
    
    return answer
ラーニング:Value値によるバイナリ、lambda式のソート
sorted(d.items(), key=lambda x: x[1]) # 오름차순
sorted(d.items(), key=lambda x: x[1], reverse=True) # 내림차순

他人が書いたコード

def solution(strings, n):
    strings.sort()
    return sorted(strings, key=lambda x: x[n])