Python 之 字典 dict 的深入浅出

Python 之 字典 dict 的深入浅出

  • 1、字典 dict 概念介绍及初始化
    • 1.1 概念介绍
    • 1.2 初始化
      • 1.2.1 初始化注意事项
    • 1.3 字典 key 说明
    • 1.4 字典查找效率
  • 2、字典 dict 操作
    • 2.1 字典 dict 元素访问
    • 2.2 字典 dict 元素增加和修改
    • 2.3 字典 dict 元素删除
    • 2.4 字典 dict 元素遍历
      • 2.4.1 遍历 key
      • 2.4.2 遍历 value
      • 2.4.3 遍历 kv 对
      • 2.4.4 字典遍历总结
      • 2.4.5 字典遍历和移除注意事项
        • 错误做法1
        • 错误做法2
        • 正确做法
      • 2.4.6 字典遍历示例
  • 3、defaultdict 和 OrderedDict
    • 3.1 defaultdict
    • 3.2 OrderedDict

1、字典 dict 概念介绍及初始化

1.1 概念介绍

  • key-value 键值对的数据的集合
  • 可变的、无序的、并且 key 不重复

1.2 初始化

1、 d = dict() 
2、 d = {
   }
3dict(**kwargs) 使用 name = value 对初始化一个字典
4dict(iterable, **kwargs) 使用可迭代对象和 name = value 对构造字典
	不过可迭代对象的元素必须是一个二元结构
5dict(mapping, **kwargs) 使用一个字典构造另外一个字典
6、类方法 dict.fromkeys(iterable, value)
d1 = dict.fromkeys(range(5))
d2 = dict.fromkeys(range(5), 5)
d3 = {
   'a':10, 'b':20, 'c':None, 'd':[1, 2, 3], 'e':('1', 'a')}
d4 = dict(a=10, b=20, c=30)
d5 = dict(((1, 'a'), (2, 'b')))

for i in [d1, d2, d3, d4, d5]:
    print(i, type(i))
{
   0: None, 1: None, 2: None, 3: None, 4: None} <class 'dict'>
{
   0: 5, 1: 5, 2: 5, 3: 5, 4: 5} <class 'dict'>
{
   'a': 10, 'b': 20, 'c': None, 'd': [1, 2, 3], 'e': ('1', 'a')} <class 'dict'>
{
   'a': 10, 'b': 20, 'c': 30} <class 'dict'>
{
   1: 'a', 2: 'b'} <class 'dict'>

1.2.1 初始化注意事项

  • dict 输入的参数必须是一个可迭代对象,且元素必须是一个二元结构
dict1 = dict([(1, 2), ('a', 10), ('c', 100, 200)])
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-c69bd69f2aa3> in <module>
----> 1 dict1 = dict([(1, 2), ('a', 10), ('c', 100, 200)])

ValueError: dictionary update sequence element #2 has length 3; 2 is required
  • 使用 set 作为可迭代参数时,一定要注意,因为 set 是无序的
dict2 = dict(([1, 2], ['a', [100]], ('abc', 100), {
   'dfg', 'qwe'}))
print(dict2)
{
   1: 2, 'a': [100], 'abc': 100, 'qwe': 'dfg'}

1.3 字典 key 说明

  • key 的要求和 set 的元素要求一致
  • set 的元素可以就是看做 key, set 可以看做是 dict 的简化版
  • hashable 可哈希才可以作为 key, 可以使用 hash() 测试

1.4 字典查找效率

Python 之 字典 dict 的深入浅出_第1张图片

2、字典 dict 操作

2.1 字典 dict 元素访问

1、d[key]
	1.1 返回 key 对应的值 value
	1.2 key 不存在,抛出 KeyError 异常
	
2、get(key [,default])
	1.1 返回 key 对应的值 value
	1.2 key 不存在,返回缺省值,如果没有缺省值,就返回None
	
3、setdefault(key [,default])
	1.1 返回 key 对应的值 value
	1.2 key 不存在,添加 kv 对,value 设置为缺省值,并返回缺省值,如果没有缺省值,则为 None
d1 = dict.fromkeys(range(5), 9)
print(1, d1)
print(2, d1.get(1), d1.get(5, 'abc'), d1.get(5))
print(3, d1[0])
print(4, d1[5])
1 {
   0: 9, 1: 9, 2: 9, 3: 9, 4: 9}
2 9 abc None
3 9

你可能感兴趣的:(Python,python)