定义一个字典
> d = {"server":"mpilgrim", "database":"master"} 1 > d {'server': 'mpilgrim', 'database': 'master'} > d["server"] 2 'mpilgrim' > d["database"] 3 'master' > d["mpilgrim"] 4Traceback (innermost last):
File "<interactive input>", line 1, in "server"] 来引用。
database 是一个键字,它所关联的值为 master,用 d["database"] 来引用。
你可以通过键字来得到值,但是不能通过值得到键字。所以 d["server"] 为 mpilgrim,但是使用 d["mpilgrim"] 会引发一个异常,因为 mpilgrim 不是一个键字。
修改一个字典
> d {'server': 'mpilgrim', 'database': 'master'} > d["database"] = "pubs" 1 > d {'server': 'mpilgrim', 'database': 'pubs'} > d["uid"] = "sa" 2 > d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}不能在一个字典中有重复的键字。给一个存在的键字赋值会抹掉原来的值。
可以在任何时候加入新的键-值对。这种语法同修改存在的值一样。(是的,它可能某天会给你带来麻烦,你可能认为增加了新值,但实际上只是反复地修改了同样的值,因为你的键字没有按照你的想象改变。)
注意新的元素(键字为 uid,值为 sa)出现在字典中间。实际上,它只不过是一种巧合,在第一个例子中的元素看上去是有序的。现在它们看上去无序了则更是一种巧合。
Note
字典没有元素顺序的概念。说元素顺序乱了是不正确的,它们只是简单的无序。这是一个重要的特性,它会在你想要以一种特定的,可重复的顺序(象以键字的字母表顺序)存取字典元素的时候骚扰你。有一些实现的方法,它们只是没有加到字典中去。
在字典中混用数据类型
> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'} > d["retrycount"] = 3 1 > d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} > d[42] = "douglas" 2 > d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}字典不是只用于字符串。字典的值可以是任意数据类型,包括字符串,整数,对象,或者甚至其它的字典。在一个单个字典里,字典的值并不需要全都是同一数据类型,可以根据需要混用和配匹。
字典的关键字要严格一些,但是它们可以是字符串,整数和几种其它的类型(后面还会谈到这一点)。也可以在一个字典中混用和配匹关键字。从字典中删除元素
> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3} > del d[42] 1 > d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} > d.clear() 2 > d {}del 允许你根据键字将单个元素从字典中删除。
clear 会删除一个字典中所有元素。注意空的大括号所表示的集合说明一个字典没有元素。字符串是大小写敏感
> d = {} > d["key"] = "value" > d["key"] = "other value" 1 > d {'key': 'other value'} > d["Key"] = "third value" 2 > d {'Key': 'third value', 'key': 'other value'}将一个值赋给一个存在的字典关键字只是简单的用新值替换旧值。
这样做不会将一个值赋给一个存在的字典关键字,因为在Python中字符串是大小写敏感的,所以 'key' 与 'Key' 是不同的。这样就在字典中生成了一个新的键/值对。对你来说可能差不多,但对于Python来说,完全是不同的。
如何访问字典中的值:
> dict2 = {'name':'earth','port':80} > for key in dict2.keys(): ... print 'key=%s,value=%s' %(key,dict2[key]) ... key=name,value=earth key=port,value=80 > for key in dict2: ... print 'key=%s,value=%s' %(key,dict2[key]) ... key=name,value=earth key=port,value=80
获取字典某个元素值:> dict2['name'] 'earth' > print 'host %s is running on port %d' %(dict2['name'],dict2['port']) host earth is running on port 80
检查字典中是否有某个键的方法 has_key()或in,not in> 'name' in dict2 True > 'server' in dict2 False > 'name' in dict2 True > dict2['name'] 'earth' > dict2.has_key('server') False > dict2.has_key('name') True
一个字典中混用数字和字符串的例子:> dict3 = {} > dict3[1] = 'abc' > dict3['1'] = 3.14159 > dict3[3.2] = 'xyz' > dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz'}
整体赋值:> dict3 = {'1': 3.14159, 1: 'abc', 3.2: 'xyz',33:'hehe'} > dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz', 33: 'hehe'}
更新字典:> dict2['name'] = 'venus' > dict2['port'] = 6969 > dict2['arch'] = 'sunos5' > print 'host %(name)s is running on port %(port)d' %dict2 host venus is running on port 6969
删除字典元素和字典> dict2 {'arch': 'sunos5', 'name': 'venus', 'port': 6969} > del dict2['name'] > dict2 {'arch': 'sunos5', 'port': 6969} > dict2.clear() > dict2 {} > del dict2 > dict2 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'dict2' is not defined > dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz', 33: 'hehe'} > dict3.pop(33) 'hehe' > dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz'}
注:避免使用内建对象名字作为变量的标识符类似: dict,list,file,bool,str,input,len
Python,字典
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】