はじめに
プログラミングにおいて、目的のインデックスを含む別のリストに基づいてリストをソートすることは一般的なタスクです。このチャレンジでは、2 つのリストを引数として受け取り、2 番目のリストのインデックスに基づいてソートされた新しいリストを返す関数を作成することが求められます。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
プログラミングにおいて、目的のインデックスを含む別のリストに基づいてリストをソートすることは一般的なタスクです。このチャレンジでは、2 つのリストを引数として受け取り、2 番目のリストのインデックスに基づいてソートされた新しいリストを返す関数を作成することが求められます。
2 つのリストを引数として受け取り、2 番目のリストのインデックスに基づいてソートされた新しいリストを返す関数sort_by_indexes(lst, indexes, reverse=False)
を作成します。この関数は以下のパラメータを持つ必要があります。
lst
:ソート対象の要素のリスト。indexes
:lst
をソートするための目的のインデックスを表す整数のリスト。reverse
:オプションのブール型パラメータで、True
に設定すると、リストを逆順にソートします。この関数は、2 番目のリストのインデックスに基づいてソートされた新しいリストを返す必要があります。
def sort_by_indexes(lst, indexes, reverse=False):
return [val for (_, val) in sorted(zip(indexes, lst), key=lambda x: \
x[0], reverse=reverse)]
a = ['eggs', 'bread', 'oranges', 'jam', 'apples','milk']
b = [3, 2, 6, 4, 1, 5]
sort_by_indexes(a, b) ## ['apples', 'bread', 'eggs', 'jam','milk', 'oranges']
sort_by_indexes(a, b, True)
## ['oranges','milk', 'jam', 'eggs', 'bread', 'apples']
このチャレンジでは、目的のインデックスを含む別のリストに基づいてリストをソートする関数を作成することが求められました。zip()
関数と sorted()
関数を使用することで、indexes
の値に基づいて 2 つのリストを結合してソートすることができました。その後、リスト内包表記を使用して結果から各ペアの最初の要素を取得し、ソートされたリストを返しました。