作者seiryou (青龙)
看板Python
标题[问题] .items()
时间Sat Oct 25 18:22:28 2014
ab = { 'Swaroop' : '
[email protected]',
'Larry' : '
[email protected]',
'Matsumoto' : '
[email protected]',
'Spammer' : '
[email protected]'
}
print "Swaroop's address is %s" % ab['Swaroop']
# Adding a key/value pair
ab['Guido'] = '
[email protected]'
# 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://webptt.com/cn.aspx?n=bbs/Python/M.1414232551.A.F6D.html
1F:→ alibuda174: 看不懂关於 ab.items()的问题 10/25 18:40
请问.items是一个固定用语吗?他是用来做甚麽的呢?
因为我只想打ab()就好...
2F:→ 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
3F:→ alibuda174: items()是dict物件提供的方法 会回传一个list 里头含 10/25 20:17
4F:→ alibuda174: 有dict的(key,value)键值配对 10/25 20:17
5F:→ alibuda174: 你才能用在for name, address in的後面 10/25 20:18
6F:→ alibuda174: 改成for name, address in ab.items(): 10/25 20:18
7F:→ alibuda174: print 'Contact %s at %s' % (address, name) 10/25 20:18
8F:→ alibuda174: 就会address在前 name在後了 10/25 20:18
9F:→ alibuda174: ps items()回传的东西 2.x与3.x版不一样 10/25 20:20
10F:→ alibuda174: 但一般使用时 大概不会有差别 10/25 20:21
11F:→ seiryou: 喔喔 感谢! 10/25 21:02