2019.7.22 迭代

迭代:用for循环来遍历一个List或者Tuple的所有元素

 

List和Tuple是通过下标来迭代,但是只要是可迭代对象,无论有无下标,均可迭代,比如dict的迭代

 

dict的迭代

D={'a':1,'b':2,'c':3}
for K in D:
    print K

#结果
a
b
c

默认情况下,迭代对象是key;

如果要迭代value,可以用:

for value in D.itervalues()

如果要同时迭代key和value,可以用:

for k,v in D.iteritems()

  

字符串也是可迭代对象

S='abcde'
for ch in S:
    print(ch)
    
a
b
c
d
e

 

如何判断一个对象是否为可迭代对象呢

可以用collections模块的Iterable类型(I要大写)来判断,同样需要用到类型判断函数isinstance

from collections import Iterable
isinstance([1,2,3,4],Iterable)  #List
True
isinstance({'a':1,'b':2},Iterable) #字典
True
isinstance(123,Iterable) #整数是否为可迭代对象
False

 

如果要把List变为索引-元素对形式,可以用python内置的enumerate函数

L=[1,2,3,4]

for i,v in enumerate(L):
    print (i,v)
    
0 1
1 2
2 3
3 4

 

for循环中同时引用两个变量是很常见的,举例:

for a,b in[(9,1),(8,2),(7,3)]:
    print(a,b)
    
9 1
8 2
7 3

 

任何可迭代对象都可以使用for循环,包括我们自己定义的数据类型,只要符合迭代条件(用collections模块的Iterable类型和isinstance函数),都可以用for循环

 

posted @ 2019-07-22 14:10  ShineLe  阅读(220)  评论(0)    收藏  举报