0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Python の組み込み関数 enumerate() にジェネレータを渡すとどうなるのか疑問に思ったので実験してみた。

Last updated at Posted at 2020-01-29

主に自分用メモ:

Python の組み込み関数 enumerate はジェネレータにも対応しているのか疑問に思ったので実験してみた。

疑問

enumerate() にジェネレータを渡すと、その場でリスト化して展開されてしまうのか?
(そもそも渡せるか?という確認も込み)

実験

以下のようなジェネレータを用意する

>>> def test(value):
...   for i in range(value):
...     print(i)
...     yield i
...

ジェネレータとして動作することを確認

>>> for v in test(10):
...   print(v)
...
0  # test() 内の print からの出力
0  # for 文の print からの出力
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9

用意したジェネレータを enumerate に渡してみる

>>> for i, v in enumerate(test(10)):
...   print(i, v)
...
0      # test() 内の print からの出力
0 0    # for 文の print からの出力
1
1 1
2
2 2
3
3 3
4
4 4
5
5 5
6
6 6
7
7 7
8
8 8
9
9 9
>>>

結果

  • enumerate にジェネレータを渡せる。
  • enumerate にジェネレータを渡すとジェネレータが返却する要素ごとにインデックスを付加して返却してくれる。
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?