本文共 5252 字,大约阅读时间需要 17 分钟。
1》pop()方法 >>> help(dict.pop) Help on method_descriptor: pop(...) D.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.pop('age') 25 >>> d {'salary': 8976, 'name': 'song', 'sex': 'man'} >>> d.pop('height','Not find!') 'Not find!' >>> d.pop('name','Not find!') 'song' >>> d {'salary': 8976, 'sex': 'man'} >>> d.pop('height') Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> d.pop('height') KeyError: 'height' 2》popitem()方法 Help on method_descriptor: popitem(...) D.popitem() -> (k, v), remove and return some (key, value) pair as a 2-tuple; but raise KeyError if D is empty. >>> d={'salary': 8976, 'sex': 'man'} >>> d {'salary': 8976, 'sex': 'man'} >>> d.popitem() ('salary', 8976) >>> d {'sex': 'man'} >>> d.popitem() ('sex', 'man') >>> d {} >>> d.popitem() Traceback (most recent call last): File "<pyshell#38>", line 1, in <module> d.popitem() KeyError: 'popitem(): dictionary is empty' 3》遍历字典的key >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> for k in d: print k salary age name sex >>> for k in d.keys(): print k salary age name sex 4》遍历字典的值 >>> for v in d.values(): print v 8976 25 song man 5》遍历键值对 >>> for k,v in d.items():#效率低(如果字典很大,则转换成列表需要一定的时间) print k,v salary 8976 age 25 name song sex man >>> for k in d:#效率高(不需要转化成字典,节省了时间) print k,d[k] salary 8976 age 25 name song sex man 6》get()方法 Help on method_descriptor: get(...) D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None. >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.get('age') 25 >>> print d.get('height') None >>> d.get('age','Not find!') 25 >>> d.get('height','Not find!') 'Not find!' 7》has_key()方法 >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.has_key('name') True >>> d.has_key('job') False 8》iteritems()方法 Help on method_descriptor: iteritems(...) D.iteritems() -> an iterator over the (key, value) items of D >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.items() [('salary', 8976), ('age', 25), ('name', 'song'), ('sex', 'man')] >>> it=d.iteritems() >>> it <dictionary-itemiterator object at 0x02F09390> >>> it.next() ('salary', 8976) >>> it.next() ('age', 25) >>> next(it) ('name', 'song') >>> next(it) ('sex', 'man') >>> it.next() Traceback (most recent call last): File "<pyshell#90>", line 1, in <module> it.next() StopIteration 9》iterkeys()方法 >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.keys() ['salary', 'age', 'name', 'sex'] >>> it=d.iterkeys() >>> it <dictionary-keyiterator object at 0x02ED3450> >>> it.next() 'salary' >>> it.next() 'age' >>> next(it) 'name' >>> next(it) 'sex' >>> next(it) Traceback (most recent call last): File "<pyshell#103>", line 1, in <module> next(it) StopIteration 10》itervalues()方法 >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.itervalues() <dictionary-valueiterator object at 0x0304C420> >>> d.values() [8976, 25, 'song', 'man'] >>> it=d.itervalues()#由值生成的迭代器 >>> it.next() 8976 >>> it.next() 25 >>> it.next() 'song' >>> it.next() 'man' >>> it.next() Traceback (most recent call last): File "<pyshell#209>", line 1, in <module> it.next() StopIteration 11》setdefault()方法 >>> help(dict.setdefault) Help on method_descriptor: setdefault(...) D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D >>> d {'salary': 8976, 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.setdefault('job','IT')#添加一个键值对 'IT' >>> d {'salary': 8976, 'job': 'IT', 'age': 25, 'name': 'song', 'sex': 'man'} >>> d.setdefault('job','student')#键'job'对应的值依然是'IT',并没有变'IT'
>>> d
{'salary': 8976, 'job': 'IT', 'sex': 'man', 'age': 25, 'name': 'song'} >>> d['job']='student'#修改了键'job'对应的值 >>> d {'salary': 8976, 'job': 'student', 'age': 25, 'name': 'song', 'sex': 'man'} >>> 12》update()方法 >>> d {'salary': 8976, 'job': 'student'} >>> d1={'job':'IT','height':180} >>> d.update(d1) >>> d {'salary': 8976, 'job': 'IT', 'height': 180} >>> d1 {'job': 'IT', 'height': 180} 13》keys()方法 >>> d {'salary': 8976, 'job': 'IT', 'height': 180} >>> d.keys() ['salary', 'job', 'height'] 14》values()方法 >>> d {'salary': 8976, 'job': 'IT', 'height': 180} >>> d.values() [8976, 'IT', 180] 15》items()方法 >>> d {'salary': 8976, 'job': 'IT', 'height': 180} >>> d.items() [('salary', 8976), ('job', 'IT'), ('height', 180)] 16》clear()方法 >>> d {'salary': 8976, 'job': 'IT', 'height': 180} >>> d.clear() >>> d { } 17》cmp()方法 字典的大小比较: 第一优先级是元素个数,元素个数多的字典大。 第二优先级是键的大小,元素个数一样的情况下,按照键的大小比较,键大,字典就大。 第三优先级是值的大小,元素个数一样,键也一样,则按照值的大小比较,值大,字典就大。 第一个大返回1,小返回-1,一样返回0; >>> d1={'name':'song','sex':'man','score':90} >>> d2={'height':180} >>> cmp(d1,d2)#按照第一优先级比较,字典d1的元素个数多,所以字典d1大,返回1 1 >>> d1 {'score': 90, 'name': 'song', 'sex': 'man'} >>> d2 {'job': 'IT', 'score': 89, 'height': 180} >>> cmp(d1,d2)#元素个数一样,按照键来比较,因为'score'>'job',所以d1>d2,返回1 1 >>> d1 {'score': 90, 'name': 'song', 'sex': 'man'} >>> d2 {'score': 90, 'name': 'abc', 'sex': 'woman'} >>> cmp(d2,d1)#元素个数和键都一样,按照值来比较,因为'abc'<'song',所以d2<d1,返回-1 -1 >>> d1 {'score': 90, 'name': 'song', 'sex': 'man'} >>> d2 {'score': 90, 'name': 'song', 'sex': 'man'} >>> cmp(d1,d2)#元素个数,键,值都相等,所以字典d1==d2,返回0 0 (完)转载地址:http://hcyai.baihongyu.com/