【python】enumerate関数の使い方を詳しく説明する

4393 ワード

1、内蔵関数enumerate(iterable[,start])の公式説明:
class enumerate(object)
 |  enumerate(iterable[, start]) -> iterator for index, value of iterable
 |
 |  Return an enumerate object.  iterable must be another object that supports
 |  iteration.  The enumerate object yields pairs containing a count (from
 |  start, which defaults to zero) and a value yielded by the iterable argument.
 |  enumerate is useful for obtaining an indexed list:
 |      (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
 |
 |  Methods defined here:
 |
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |
 |  __iter__(self, /)
 |      Implement iter(self).
 |
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
 |
 |  __next__(self, /)
 |      Implement next(self).
 |
 |  __reduce__(...)
 |      Return state information for pickling.
  • enumerateは辞書で列挙、列挙の意味
  • である.
  • 反復可能(iterable)/遍歴可能なオブジェクト(リスト、文字列など)についてenumerateは、インデックスと値
  • を同時に得ることができるインデックスシーケンスを構成する.
  • enumerateはforループでカウントを得るために多く使用され、最初のパラメータiterableは反復可能なオブジェクトリストやメタグループ、文字列などに入力される.2番目のパラメータstartはオプションパラメータで、開始index数を指定します.

  • 2、インスタンス詳細解1つのseq反復可能オブジェクトに対してenumerate操作を行い、enumerate(seq)を得る:
    input:enumerate(seq)
    output:(0, seq[0]), (1, seq[1]), (2, seq[2])

    リストseqs=[1,2,3,4,7,8,9]を列挙し、遍歴インデックスと要素の両方を取得する場合:
    In [2]: seqs = [1,2,3,4,7,8,9]
    
    In [3]: enumerate(seqs)
    Out[3]: 0x1ba9c822b88>
    
    In [4]: list(enumerate(seqs))
    Out[4]: [(0, 1), (1, 2), (2, 3), (3, 4), (4, 7), (5, 8), (6, 9)]

    指定したindex値が1の場合:
    In [5]: list(enumerate(seqs,1))
    Out[5]: [(1, 1), (2, 2), (3, 3), (4, 4), (5, 7), (6, 8), (7, 9)]

    ファイルの行数を統計する場合は、次のように書くことができます.
    count = len(open(filepath, 'r').readlines())

    この方法は簡単ですが、ファイルが大きいと仕事もできないかもしれません.enumerate()を使用できます.
    count = 0
    for index, line in enumerate(open(filepath,'r')): 
        count += 1