作者seiryou (青龍)
看板Python
標題[問題] .items()
時間Sat Oct 25 18:22:28 2014
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 是沒有順序的 就是指這種情況嗎?
但是文章又說可以自己指定順序 想請問一下 以這篇為例要如何去指定順序呢?
感謝回答~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.84.188
※ 文章網址: http://www.ptt.cc/bbs/Python/M.1414232551.A.F6D.html
→ alibuda174: 看不懂關於 ab.items()的問題 10/25 18:40
請問.items是一個固定用語嗎?他是用來做甚麼的呢?
因為我只想打ab()就好...
→ alibuda174: 想要顛倒的話 for/in與%,其中一個顛倒過來即可 10/25 18:41
請問顛倒是?
我已經試過for address ,name in ab.items():
但是出來結果仍舊是name在前@@
※ 編輯: seiryou (1.167.84.188), 10/25/2014 19:01:44
→ alibuda174: items()是dict物件提供的方法 會回傳一個list 裡頭含 10/25 20:17
→ alibuda174: 有dict的(key,value)鍵值配對 10/25 20:17
→ alibuda174: 你才能用在for name, address in的後面 10/25 20:18
→ alibuda174: 改成for name, address in ab.items(): 10/25 20:18
→ alibuda174: print 'Contact %s at %s' % (address, name) 10/25 20:18
→ alibuda174: 就會address在前 name在後了 10/25 20:18
→ alibuda174: ps items()回傳的東西 2.x與3.x版不一樣 10/25 20:20
→ alibuda174: 但一般使用時 大概不會有差別 10/25 20:21
→ seiryou: 喔喔 感謝! 10/25 21:02