aDict = {'key1':'value1', 'key2':'value2', 'key3':'value3'}PRint '-----------dict-------------'for d in aDict: print "%s:%s" %(d, aDict[d])#遍历aDict中的key,并利用key索引出values:print '-----------item-------------'for (k,v) in aDict.items(): print '%s:%s' %(k, v)#aDict.item():返回的是一个列表,元素是每组key和value组成的tuple:[(key1,value1),...,(key3,value3)]所以前面的(k,v)用的是values模式print '------------iteritems---------'for k,v in aDict.iteritems(): print '%s:%s' % (k, v)#一个迭代器函数。print '---------iterkeys---------------'for k in aDict.iterkeys(): print '%s:%s' % (k, aDict[k])#类似于第一种情况 得到一个keyprint '------------iterkeys, itervalues----------'for k,v in zip(aDict.iterkeys(), aDict.itervalues()): print '%s:%s' % (k, v)#区别于第二种情况,得到一个value#所以比较难理解的是第二和三种情况。item代表一个key和一个对应的value。下面是自己的代码输出试验。n [30]: aDict = {'key1':'value1', 'key2':'value2', 'key3':'value3'}for k in aDict: print kkey3key2key1#只输出keyfor (k,v) in aDict.items(): print k print v print (k,v)key3value3('key3', 'value3')key2value2('key2', 'value2')key1value1('key1', 'value1')for k in aDict.iteritems(): print k('key3', 'value3')('key2', 'value2')('key1', 'value1')for v in aDict.iteritems(): print v('key3', 'value3')('key2', 'value2')('key1', 'value1')#上面两组是一样的。单个的值会返回一组itemsfor k,v in aDict.iteritems(): print k print vkey3value3key2value2key1value1for k in aDict.iterkeys(): print kkey3key2key1for v in aDict.itervalues(): print vvalue3value2value1for k,v in zip(aDict.iterkeys(), aDict.itervalues()): print k print vkey3value3key2value2key1value1#最后注意python 中的dict items 只能保证完整性不能保证顺序。这里为什么是321.。。我也不知道。# reference http://Ghostfromheaven.iteye.com/blog/1549441
新闻热点
疑难解答