定义一个字典
> d = {"server":"mpilgrim", "database":"master"} 1
> d
{'server': 'mpilgrim', 'database': 'master'}
> d["server"] 2
'mpilgrim'
> d["database"] 3
'master'
> d["mpilgrim"] 4
Traceback (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,字典
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]