知识补充—字典内置方法

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])