islice関数はイテラブルをスライスして抜き取ったイテレータを生成する関数です。
islice関数とは
イテラブルを分割したイテレータを生成します。引数の数により動きが異なるため注意する必要があります。
islice関数 終点のみ指定
islice(2)などのように引数を1つだけ指定するとイテラブルの終点(含まない)を指定したことになります。イテラブルは0番目から数えるため0番目、1番目まで返します。図にすると以下のようになります。
islice関数 始点と終点を指定
始点と終点の2つの引数を指定すると以下の図のように始点(含む)と終点(含まない)に、挟まれた部分を返します。
islice関数 始点, 終点, ステップを指定
始点、終点、ステップを指定した場合、下図のように最初に始点(含む)と終点(含まない)に、挟まれた部分に対し、ステップで指定した分を飛ばしたイテレータが戻ります。
islice実装サンプル
islice関数の利用例をみてゆきます。
終点のみ指定
イテラブルの次の引数として終点のみを指定した例です。
ite=('京都','大阪','東京','北海道','沖縄県','福岡県')
ans=tuple(i for i in islice(ite,2))
print(ans)
実行結果
('京都', '大阪')
一番最初の要素を0番目として数えますので。2=東京の前まで表示されます。
始点と終点を指定
イテラブルの次の引数として終点のみを指定した例です。
ite=('京都','大阪','東京','北海道','沖縄県','福岡県')
ans=tuple(i for i in islice(ite,2,5))
print(ans)
実行結果
('東京', '北海道', '沖縄県')
2=東京から5=福岡県の前(沖縄県)まで表示されます。
始点, 終点, ステップを指定
ite=('要素0','要素1','要素2','要素3','要素4','要素5','要素6','要素7')
ans=tuple(i for i in islice(ite,1,8,3))
print(ans)
実行結果
('要素1', '要素4', '要素7')
1=要素1から8の前(要素7)までが取り出され3つ飛びで抜き出されます。
まとめ
islice関数はどうだったでしょうか。イテラブルでもリストであれば単純にlist[start:stop:skip]などで同じような動作をさせることができます。しかしislice関数では、リストだけでなくイテラブルに対し同じ操作を実現することができます。ファイルから特定の行を抜き出したりなども可能です。色々応用がきくので試してみてください。
Comment on this article
コメントはまだありません。
Send comments