[問題] .items()

看板Python作者 (青龍)時間11年前 (2014/10/25 18:22), 11年前編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
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

10/25 18:40, , 1F
看不懂關於 ab.items()的問題
10/25 18:40, 1F
請問.items是一個固定用語嗎?他是用來做甚麼的呢? 因為我只想打ab()就好...

10/25 18:41, , 2F
想要顛倒的話 for/in與%,其中一個顛倒過來即可
10/25 18:41, 2F
請問顛倒是? 我已經試過for address ,name in ab.items(): 但是出來結果仍舊是name在前@@ ※ 編輯: seiryou (1.167.84.188), 10/25/2014 19:01:44

10/25 20:17, , 3F
items()是dict物件提供的方法 會回傳一個list 裡頭含
10/25 20:17, 3F

10/25 20:17, , 4F
有dict的(key,value)鍵值配對
10/25 20:17, 4F

10/25 20:18, , 5F
你才能用在for name, address in的後面
10/25 20:18, 5F

10/25 20:18, , 6F
改成for name, address in ab.items():
10/25 20:18, 6F

10/25 20:18, , 7F
print 'Contact %s at %s' % (address, name)
10/25 20:18, 7F

10/25 20:18, , 8F
就會address在前 name在後了
10/25 20:18, 8F

10/25 20:20, , 9F
ps items()回傳的東西 2.x與3.x版不一樣
10/25 20:20, 9F

10/25 20:21, , 10F
但一般使用時 大概不會有差別
10/25 20:21, 10F

10/25 21:02, , 11F
喔喔 感謝!
10/25 21:02, 11F
文章代碼(AID): #1KItddzj (Python)
文章代碼(AID): #1KItddzj (Python)