Python中字典的基础知识归纳小结
定义一个字典 >>> d = {"server":"mpilgrim","database":"master"} 1 >>> d {'server': 'mpilgrim','database': 'master'} >>> d["server"] 2 'mpilgrim' >>> d["database"] 3 'master' >>> d["mpilgrim"] 4 首先,我们创建了一个拥有两个元素的新字典,并将其赋值给变量 d。每一个元素都是一个键-值对,整个元素集合用大括号括起来。 你可以通过键字来得到值,但是不能通过值得到键字。所以 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','database': 'pubs'} >>> d["retrycount"] = 3 1 >>> d {'server': 'mpilgrim','database': 'master','retrycount': 3} >>> d[42] = "douglas" 2 >>> d {'server': 'mpilgrim',42: 'douglas','retrycount': 3} 字典不是只用于字符串。字典的值可以是任意数据类型,包括字符串,整数,对象,或者甚至其它的字典。在一个单个字典里,字典的值并不需要全都是同一数据类型,可以根据需要混用和配匹。 从字典中删除元素 >>> d {'server': 'mpilgrim','retrycount': 3} >>> del d[42] 1 >>> d {'server': 'mpilgrim','retrycount': 3} >>> d.clear() 2 >>> d {} del 允许你根据键字将单个元素从字典中删除。 字符串是大小写敏感 >>> 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=80
>>> dict2['name'] 'earth' >>> print 'host %s is running on port %d' %(dict2['name'],dict2['port']) host earth is running on port 80
>>> '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,3.2: 'xyz',33:'hehe'} >>> dict3 {'1': 3.14159,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>",in <module> NameError: name 'dict2' is not defined >>> dict3 {'1': 3.14159,33: 'hehe'} >>> dict3.pop(33) 'hehe' >>> dict3 {'1': 3.14159,3.2: 'xyz'}
类似: dict,list,file,bool,str,input,len (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |