首先注意,字典的键 必须是 不可变类型数据。字典是无序的。
但是,从3.6开始字典都是有序的,并且从3.7开始这成了正式的Python语言特性。
1. update
更新字典键值对。
a = {"a": 100}
a.update({'b': 222})
print(a) # {'a': 100, 'b': 222}
1. clear
删除 字典中所有 键值对
In [1]: test_dict = {'a':1,'b':2}
In [2]: test_dict.clear()
In [3]: test_dict
Out[3]: {}
2. keys
返回一个包含字典所有键的列表. 在python3中,返回值为一个可迭代对象,可以用list,把它转换成一个列表。
In [1]: test_dict = {'a':1,'b':2,'c':3}
In [2]: k = test_dict.keys()
In [3]: k
Out[3]: dict_keys(['c', 'a', 'b'])
In [4]: list(k)
Out[4]: ['c', 'a', 'b']
3. values
返回一个包含字典所有value的列表。在python3中,返回值为一个可迭代对象,可以用list,把它转换成一个列表。
In [1]: test_dict = {'a':1,'b':2,'c':3}
In [2]: v = test_dict.values()
In [3]: v
Out[3]: dict_values([3, 1, 2])
In [4]: list(v)
Out[4]: [3, 1, 2]
4. items
返回一个包含所有键值对元祖的列表。在python3中,返回值为一个可迭代对象,可以用list,把它转换成一个列表。
In [1]: test_dict = {'a':1,'b':2,'c':3}
In [2]: it = test_dict.items()
In [3]: it
Out[3]: dict_items([('c', 3), ('a', 1), ('b', 2)])
In [4]: list(it)
Out[4]: [('c', 3), ('a', 1), ('b', 2)]
5. pop
删除指定键所对应的值,返回这个值并从字典中把它移除. 如果键不存在,会 抛出异常。
In [1]: test_dict.pop('d')
Out[1]: 'haha'
In [2]: test_dict
Out[2]: {'c': 3, 'a': 1, 'b': 2}
6. setdefault
此方法有两个参数:
第一个参数:查找的键
第二个参数:键不存在时,设置的默认键值。
如果键存在,则返回这个键的值。
如果键不存在,则返回这个键,设置的默认值。然后把键值对加入到原来的字典中。
键存在:
In [1]: test_dict = {'a':1,'b':2,'c':3}
In [2]: test_dict.setdefault('a','haha')
Out[2]: 1
键不存在:
In [1]: test_dict = {'a':1,'b':2,'c':3}
In [2]: test_dict.setdefault('d','haha') 注意:如果不设置默认值,默认值会被自动设置成None.
Out[2]: 'haha'
In [3]: test_dict
Out[3]: {'c': 3, 'a': 1, 'b': 2, 'd': 'haha'}
7. get
和setdefault用法一样,不同的是:
当键不存在时,返回这个键,设置的默认值,并不会 把键值对加入到原来的字典中。
8. 带默认值的 类字典对象 - defaultdict
首先使用之前需要导入:
from collections import defaultdict
基本使用:
In [2]: d = defaultdict(list)
In [3]: d['a'] # 当我们去访问一个不存在的 键 的时候,会自动把这个 键 添加到字典里,然后设置一个默认值[]
Out[3]: [] # 注意:只有 通过 d['a'] 或者 d.__getitem__('a') 这两种方式 访问 键,才会设置默认值。其他情况下会抛KeyError异常。
In [4]: d['a'].append(1)
In [5]: d['a'].append(2)
In [6]: dict(d)
Out[6]: {'a': [1, 2]}
d 是一个 defaultdict对象,参数必须是 可调用的或者None。参数调用之后返回值 就是字典键的默认值。上例中,默认值 是一个空列表。如果参数是None,那么这个字典对象就没有默认值了,那你还不如直接去用普通的字典。
默认值 设置为 0
In [7]: def zero():
...: return 0
...:
In [8]: d = defaultdict(zero)
In [9]: d['a']
Out[9]: 0
In [10]: d['b']
Out[10]: 0
In [11]: dict(d)
Out[11]: {'b': 0, 'a': 0}
9. 判断键 是否在 字典中存在,请使用 in 关键字
10. 判断字典 键值对个数,请使用 len 函数