知识补充—字典内置方法
1、cmp(dict1, dict2)
如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1,如果字典dict1小于字典dict2返回-1
cmp()可以返回除-1,0,1 外的其他值。算法按照以下的顺序:
- (1)比较字典长度
如果字典的长度不同,那么用 cmp(dict1, dict2) 比较大小时,如果字典 dict1 比 dict2 长,
cmp()返回正值,如果 dict2 比 dict1 长,则返回负值。也就是说,字典中的键的个数越多,这个
字典就越大,即:
len(dict1) > len(dict2) ==> dict1 > dict2 - (2)比较字典的键
如果两个字典的长度相同,那就按字典的键比较;键比较的顺序和 keys()方法返回键的顺序相
同。 (注意: 相同的键会映射到哈希表的同一位置,这保证了对字典键的检查的一致性。) 这时,
如果两个字典的键不匹配时,对这两个(不匹配的键)直接进行比较。当 dict1 中第一个不同的键大
于 dict2 中第一个不同的键,cmp()会返回正值。 - (3)比较字典的值
如果两个字典的长度相同而且它们的键也完全匹配,则用字典中每个相同的键所对应的值进行
比较。一旦出现不匹配的值,就对这两个值进行直接比较。若 dict1 比 dict2 中相同的键所对应的
值大,cmp()会返回正值。 - (4) Exact Match
到此为止,即,每个字典有相同的长度、相同的键、每个键也对应相同的值,则字典完全匹配,
返回 0 值。
2、len(dict)
计算字典元素个数,即键的总数
3、str(dict)
将值转化为适于人阅读的形式,以可打印的字符串表示
4、dict.clear()
用于删除字典内所有元素,无返回值
4、dict.copy()
返回一个字典的浅复制。
传送门
5、dict.fromkeys(seq[, value])
用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值
举个栗子
seq = ('aa', 'bb', 'cc')
dict = dict.fromkeys(seq)
print('新字典为:%s' %str(dict))
dict = dict.fromkeys(seq, 10)
print('新字典为:%s' %str(dict))
上栗运行结果如下:
新字典为:{'aa': None, 'bb': None, 'cc': None}
新字典为:{'aa': 10, 'bb': 10, 'cc': 10}
6、dict.get(key, default=None)
get() 函数返回指定键的值,如果值不在字典中返回默认值。
dict = {'Name': 'Runoob', 'Age': 27}
print "Value : %s" % dict.get('Age')
print "Value : %s" % dict.get('Sex', "Never")
Value : 27
Value : Never
7、dict.has_key(key)
has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false。
8、dict.items()
items() 函数以列表返回可遍历的(键, 值) 元组数组。
dict = {'a':'google','b':'baidu','c':'ali'}
print('字典值:%s' % dict.items())
for key,value in dict.items():
print (key,value)
运行结果:
字典值:dict_items([('a', 'google'), ('b', 'baidu'), ('c', 'ali')])
a google
b baidu
c ali
9、dict.keys()
keys() 函数以列表返回一个字典所有的键
dict = {'Name': 'Zara', 'Age': 7}
print ("Value : %s" % dict.keys())
Value : dict_keys(['Name', 'Age'])
10、dict.setdefault(key, default=None)
与get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
11、dict.update(dict2)
update() 函数把字典dict2的键/值对更新到dict里。
dict = {'Name': 'Zara', 'Age': 7}
dict2 = {'a':'10'}
dict.update(dict2)
print ('Value:%s' %dict)
Value:{'Name': 'Zara', 'Age': 7, 'a': '10'}
12、dict.values()
values() 函数以列表返回字典中的所有值。
dict = {'Name': 'Zara', 'Age': 7}
print ('Value:%s' %dict.values())
Value:dict_values(['Zara', 7])