为什么 我输入的是 value 同样也可以打印出来的 是key
d = {
'Adam': 95,
'Lisa': 85,
'Bart': 59
}
for value in d:
print value
为什么我输入的是value 但是 同样打印出来的结果却是key呢??
2015-04-13
对于dict,它的keys必须是唯一的也是可枚举的(enumerable),所有对于
for value in d: print value //打印出来的也就是它的keys
比较深入的理解,是要认识__iter__这个特殊函数,对于dict d,iter(d) 返回的是d的一个iterator,你可以做以下的实验:
In [12]: d Out[12]: {'Adam': 95, 'Bart': 59, 'Lisa': 85} In [13]: i=iter(d) In [14]: i.next() Out[14]: 'Lisa' In [15]: i.next() Out[15]: 'Adam' In [16]: i.next() Out[16]: 'Bart'
在for循环里头,其实每次隐式的调用d的iterator,然后打印出当前iterator所指向的元素,再call next()移动iterator。
举报