ジェネレータまたはリストから最初の N 個の項目を取得するにはどうすればよいでしょうか? [重複] 質問する

ジェネレータまたはリストから最初の N 個の項目を取得するにはどうすればよいでしょうか? [重複] 質問する

私は...するだろう

var top5 = array.Take(5);

Python でこれをどうやって行うのでしょうか?

ベストアンサー1

リストのスライス

top5 = array[:5]
  • リストをスライスするには、簡単な構文があります:array[start:stop:step]
  • 任意のパラメータを省略できます。以下はすべて有効です: array[start:]、、array[:stop]array[::step]

ジェネレータのスライス

import itertools
top5 = itertools.islice(my_list, 5) # grab the first five elements
  • Python ではジェネレーターを直接スライスすることはできません。itertools.islice()構文を使用して、新しいスライスジェネレータでオブジェクトをラップします。itertools.islice(generator, start, stop, step)

  • ジェネレーターをスライスすると、部分的に使い果たされることに注意してください。ジェネレーター全体をそのままにしておきたい場合は、次のように、まずタプルまたはリストに変換してください。result = tuple(generator)

おすすめ記事