2
アルファベット順に選択して単語リストを注文するプログラムを作成しようとしていますが、始める方法とちょっと混乱します。例えばPython:選択したアルファベット順の単語のリストを
、選択されたアルファベット順であった場合:次に、ワードがこの順にソートされるUVWXYZNOPQRSTHIJKLMABCDEFG :
- WHATEVER
- ZONE
- HOW
- もつとも
- HILL
- ANY
- アントラー
- COW
アルファベット順に選択して単語リストを注文するプログラムを作成しようとしていますが、始める方法とちょっと混乱します。例えばPython:選択したアルファベット順の単語のリストを
、選択されたアルファベット順であった場合:次に、ワードがこの順にソートされるUVWXYZNOPQRSTHIJKLMABCDEFG :
あなたは整数ソートする順序にある、整数のリストに手紙をマップソートキーを使用することができます。
sort_key = {l: i for i, l in enumerate('UVWXYZNOPQRSTHIJKLMABCDEFG')}
sorted_words = sorted(words, key=lambda w: [sort_key[l] for l in w])
リストはつまり、辞書順命じています2つのリストの要素を1つずつ比較して、異なる要素が見つかるまで順序を決定します。 'ANTLER'
と'ANY'
の単語は、それぞれ[19, 6, 12, 17, 23, 10]
と[19, 6, 4]
にマッピングされているため、'ANY'
が最初に4 < 10
と表示されます。
デモ:
>>> words = ['ANTLER', 'ANY', 'COW', 'HILL', 'HOW', 'HOWEVER', 'WHATEVER', 'ZONE']
>>> sort_key = {l: i for i, l in enumerate('UVWXYZNOPQRSTHIJKLMABCDEFG')}
>>> sorted(words, key=lambda w: [sort_key[l] for l in w])
['WHATEVER', 'ZONE', 'HOW', 'HOWEVER', 'HILL', 'ANY', 'ANTLER', 'COW']