Pythonのリストから、最初の要素、3番目から200番目の要素、および201番目の要素から最後の要素までのステップサイズ3が必要だとします。
これを行う1つの方法は、個別のインデックス付けと連結を使用することです。
new_list = old_list[0:1] + old_list[3:201] + old_list[201::3]
1つのインデックスだけでこれを行う方法はありold_list
ますか?私は次のようなものが欲しいです(リストインデックスはリストにすることができず、Pythonには残念ながらスライスリテラルがないため、これは構文的に機能しないことを知っています;私はちょうど近いものを探しています):
new_list = old_list[[0, 3:201, 201::3]]
NumPy配列に切り替えることでこれのいくつかを達成できますが、ネイティブPythonリストに対してそれを行う方法にもっと興味があります。また、スライスメーカーなどを作成することもできます。また、必要なすべてのスライスの構成を表す同等のスライスオブジェクトを提供する強力なアームを作成することもできます。
しかし、私はスライスを管理するための新しいクラスを作成することを含まない何かを探しています。スライス構文を連結してリストにフィードし、スライスを個別に取得してそれぞれの結果を最終的に連結することを意味することをリストに理解させたいと思います。