快速掌握Python中的循环技术( 二 )


d={'f':1,'b':4,'a':3,'e':9,'c':2}#sorting by values in the dictionaryfor i in sorted(d.items(),key=lambda item:item[1]):print (i)#Output:('f', 1)('c', 2)('a', 3)('b', 4)('e', 9) 
5. 使用reversed()函数遍历序列:reversed(seq)
返回反向迭代器 。seq必须是一个具有__reversed__()方法或支持序列协议(__len__()方法和__getitem__()方法 , 参数从0开始)的对象 。
 
示例:
反向循环一个序列 , 然后调用reversed()函数 。
colors=['red','green','blue','yellow']for i in reversed(colors):print (i)'''Output:yellowbluegreenred'''

快速掌握Python中的循环技术

文章插图
 
6. 循环查找字典 。当循环遍历字典时 , 可以使用items()方法同时检索键和相应的值 。
示例:
d={'a':1,'b':2,'c':3}for k,v in d.items():print (k,v)#Output:a 1b 2c 3 
7. 在迭代时修改集合:在遍历同一个集合时修改集合的代码可能很难正确处理 。相反 , 循环遍历集合的副本或创建一个新集合通常更简单 。
 
策略1:对副本进行迭代
如果希望在迭代时删除字典中的项 , 则在字典的副本上进行迭代
d={'a':1,'b':2,'c':3}for k,v in d.copy().items():if v%2==0:del d[k]print (d)#Output:{'a': 1, 'c': 3}策略2:创建一个新的集合
d={'a':1,'b':2,'c':3}d1={}for k,v in d.items():if v%2!=0:d1[k]=vprint (d1)#Output:{'a': 1, 'c': 3}print (d)#Output:{'a': 1, 'b': 2, 'c': 3}


推荐阅读