[问题] .items()

楼主: seiryou (反逆的鲁鲁蛇)   2014-10-25 18:22:28
ab = { 'Swaroop' : 'swaroopch@byteofpython.info',
'Larry' : 'larry@wall.org',
'Matsumoto' : 'matz@ruby-lang.org',
'Spammer' : 'spammer@hotmail.com'
}
print "Swaroop's address is %s" % ab['Swaroop']
# Adding a key/value pair
ab['Guido'] = 'guido@python.org'
# Deleting a key/value pair
del ab['Spammer']
print '\nThere are %d contacts in the address-book\n' % len(ab)
for name, address in ab.items():
print 'Contact %s at %s' % (name, address)
if 'Guido' in ab: # OR ab.has_key('Guido')
print "\nGuido's address is %s" % ab['Guido']
请问为何一定要用ab.items()?
我用ab.items()会失败
另一个问题是 for in 后面他用name, address
我把他颠倒address, name 后面的% (address, name)也作变动
但是奇怪的是print出来的句子(contact %s at %s部分)
却仍然是contact name at address?
我好像有看到文章说%s 是没有顺序的 就是指这种情况吗?
但是文章又说可以自己指定顺序 想请问一下 以这篇为例要如何去指定顺序呢?
感谢回答~
作者: alibuda174 (阿哩不达)   2014-10-25 18:40:00
看不懂关于 ab.items()的问题想要颠倒的话 for/in与%,其中一个颠倒过来即可items()是dict物件提供的方法 会回传一个list 里头含有dict的(key,value)键值配对你才能用在for name, address in的后面改成for name, address in ab.items():print 'Contact %s at %s' % (address, name)就会address在前 name在后了ps items()回传的东西 2.x与3.x版不一样但一般使用时 大概不会有差别
楼主: seiryou (反逆的鲁鲁蛇)   2014-10-25 21:02:00
喔喔 感谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com