[問題] .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