迭代
字符串,列表,元组和字典等对象均支持迭代操作,可用迭代器遍历对象
因为上述对象没有自己的迭代器,iter()函数生成迭代器
d=iter([7,4,3]) for i in range(3): print(next(d)) next(d) 越界会报错
d=iter((7,8,(9,0))) for i in range(3): print(next(d))
d=iter(('abc')) for i in range(3): print(next(d))
d1=iter({'name':'Jhon','age':25}) d2=iter({'name':'Jhon','age':25}.keys()) d3=iter({'name':'Jhon','age':25}.values()) d4=iter({'name':'Jhon','age':25}.items()) for i in range(2): print(next(d1)) print() for i in range(2): print(next(d2)) print() for i in range(2): print(next(d3)) print() for i in range(2): print(next(d4)) print()
解析
解析就是通过一定的方法来修改
一般和for紧密联系
t=[1,2,3,4] for x in range(4): t[x]+=10 for x in range(4): print(t[x],end=' ')
t=[1,2,3,4] t=[x+10 for x in t] for x in range(4): print(t[x],end=' ')
t=[x+10 for x in range(10) if x%2==0] for x in range(len(t)): print(t[x],end=' ')
t=[x+y for x in (10,20) for y in (1,2,3)] for x in range(len(t)): print(t[x],end=' ')
t=[x+y for x in (10,20) if x>10 for y in (1,2,3) if y%2==1] for x in range(len(t)): print(t[x],end=' ')
t=tuple(x*2 for x in range(10) if x%2==1) print(t)
t={x for x in range(10) if x%2==1} print(t)
t={x:ord(x) for x in 'abcd'} print(t)
部分函数可以直接使用可迭代对象
t=[0,2,4,1,3,5] print(all(t)) #所有对象都为真时返回True print(any(t)) #有一个对象为真时返回True
t=[0,2,4,1,3,5] print(sum(t)) print(sorted(t)) print(min(t)) print(max(t))