Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
一、Python 循环遍历列表元素
1.for i in list():
2.for i in enumerate(list):
2.for i in range(len(list)):
for i in list(): for i in enumerate(list): for i in range(len(list)):二、Python 循环遍历字典元素
1.for k,v in dict.items():
2.for k,v in dict.iteritems():
3.for k,v in zip(dict.iterkeys(),dict.itervalues()):
4.for i in dict.keys():
5.for i in dict.values():
6.for i in sorted(dict.keys()):
(一)dict.keys() VS dict.values()
for i in dict.keys()方法 for i in dict.values()方法可以发现,keys()是取出字典的所有键出来。由于字典是hash的,你只能从key找到value,但不能从value找到确切的key。
(二)字典顺序
字典本身是一个无序的,和赋值的顺序无关。打个比方,字典就是一本本的书随意扔进了图书馆,你要找到他只能凭书号。
字典元素的顺序通常没有定义。换句话说,迭代的时候,字典中的键和值都能保证被处理,但是处理顺序不确定。
字典本身无序
如下图,可以看到和赋值顺序无关:
for k,v in dict.items()方法 for k,v in dict.iteritems()方法 for k,v in zip(dict.iterkeys(),dict.itervalues())方法上述方法会将键–值对作为元组返回。
字典如何有序
字典有序,可以理解为,把key进行排序后,输出:
sorted–使得字典有序 如果顺序很重要的话,可以将键值保存在单独的列表中,例如迭代前进行排序。 迭代前排序对于上述所有方法的比较没有找到什么资料,只知道dict.items()速度上最慢,dict.iteritems()方法,因为不是一次生成所有对象,而是用一个生成一个,无论在速度上还是内存占有上都有优势。
网友评论