python反復、Iterableオブジェクトの判断と内蔵関数enumerateの使用

4113 ワード

参考:
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868196435255fcca20a1630446ea2dd434a7176e152000
腫萼萼芰葃芰芫芫芫菶荎荎荎?萼33859;菚菗33751;33751;33781;33781;菵
反復:
pythonでは、反復はfor…in…を通じて行われます.
pythonのforサイクルはlistまたはtupleだけでなく、他の反復可能なオブジェクトにも作用し得る.
d=[1,2,3,4]
for key in d:
     print key
リスト反復
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第1张图片
d=(1,2,3,4)
for key in d:
      print key
tuple反復
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第2张图片
d={'a':1, 'b':2, 'c':3}
for key in d:
     print key
dict反復
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第3张图片
note:dictの記憶はリスト順に並べられていませんので、反復した結果の順序が違っている可能性があります.
デフォルトではdict反復はkeyです.もしvalueを繰り返すなら、for value in d.itervalues()を使ってもいいです.keyとvalueを同時に繰り返すなら、for k、v in d.iteritems()を使ってもいいです.
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第4张图片
d="ABCD"
for key in d:
     print key
文字列も反復可能なオブジェクトであり、forループにも作用します.
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第5张图片
オブジェクトが反復可能オブジェクトであるかどうかを判断する場合、方法は、collectionモジュールのiterableタイプによって判断される.
from collections import Iterable
isinstance('abc', Iterable) #str     
isinstance([1,2,3], Iterable) #list     
isinstance(123, Iterable) #        
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第6张图片
pythonに内蔵されているenumerate関数は、一つのlistをインデックス-要素ペアに変えることができます.これにより、forループの中でインデックスと要素自体を反復して、listに対してjavaのような下位サイクルを実現します.
for i,value in enumerate(['A', 'B', 'C'])
     print i,value
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第7张图片
二次元配列、三桁配列を印刷します.
python 迭代、Iterable(可迭代)对象的判断和内置函数enumerate的使用_第8张图片