Pythonにおける range
について教えてください。
使うことで範囲を取得できるオブジェクトを返してくれますが、 for
などで評価するとひとつ値をくれるということは一応理解してます。
for
などのループ構文を使わずに、直接値をひとつずつ取ってこれるメソッドがわからないので、ご存じの方がいたら教えていただきたいという話です。
python
1for i in range(10): # 0, 1, 2 ... ,8, 9 2 print(i) 3 4# 実行すると0〜9が出力される
いわゆるイテレータであることも把握してますが、for
文ではrange
のインスタンスに対して、実際に「値をくれ」と呼び出しているメソッドはなんなのでしょうか。
これがわかれば、forなどを使わずに任意タイミングで「その時もらうべき値」がもらえるのではと調べているのですが発見できずにいます。
python
1>>> r = range(5) 2>>> dir(r) 3['__bool__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index', 'start', 'step', 'stop'] 4>>> r.なんとか() # 値を取得できるメソッド 51 <- この値を任意タイミングで取得したい 6>>> r.なんとか() # 値を取得できるメソッド 72 8...
という具合に、任意タイミングで値を取得できないかという話になります。
回答3件
あなたの回答
tips
プレビュー