python基础—dict

时间:2022-07-22
本文章向大家介绍python基础—dict,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
字典是key-value键值对的数据的集合
    可变的,无序的,key不重复
  
</li>

<li>
  
    字典的key要求和set集合的要求一致,可哈希才可以作为key
  
</li>
```

dict()方法

d = dict(((1,‘a’),(2,‘b’))) d {1: ‘a’, 2: ‘b’}

d2 = dict(([1,‘a’],[2,‘b’])) d2 {1: ‘a’, 2: ‘b’}

#直接使用{}去构造 d3 = {‘a’: 1,‘b’: 2,‘c’: 3} d3 {‘a’: 1, ‘b’: 2, ‘c’: 3}

#类方法 dict.fromkeys(iterable,value) d4 = dict.fromkeys(range(5)) d4 {0: None, 1: None, 2: None, 3: None, 4: None}

d5 = dict.fromkeys([‘a’,‘b’,1,2,3]) d5 {‘a’: None, ‘b’: None, 1: None, 2: None, 3: None}

d6 = dict.fromkeys(range(5),‘python’) d6 {0: ‘python’, 1: ‘python’, 2: ‘python’, 3: ‘python’, 4: ‘python’}

<h2>
    字典元素的访问
  </h2>
  
  
  
  
  
    d[key]
  
  
  <ul>
    <li>
      
        返回key对应的值value
      
    </li>
    
    <li>
      
        key不存在抛出KeyError异常
      
    </li>
  </ul>
  
  
    ```
d = {1: 'a', 2: 'b'}
d[1]
'a'
get(key,default)
  • 返回key对应的值value
  • key不存在返回缺省值,如果没有
d = {1: 'a', 2: 'b'}
d.get(1)
'a'

d[key] = value

  • 将key对应的值修改为value
  • key不存在添加新的kv对
d
{1: 'a', 2: 'b'}
d[3] = 'c'

d
{1: 'a', 2: 'b', 3: 'c'}
d[2] = 'python'
d
{1: 'a', 2: 'python', 3: 'c'}

update([other])

  • 使用另一个字典的kv对更新本字典
  • key不存在,就添加
  • key存在,覆盖已存在的key对应的值
  • 就地修改
d.update(red=1)
d
{1: 'a', 2: 'python', 3: 'c', 'red': 1}

d.update({'red': 2})
d
{1: 'a', 2: 'python', 3: 'c', 'red': 2}

d.update((('red',3),))
d
{1: 'a', 2: 'python', 3: 'c', 'red': 3}

d6
{0: 'python', 1: 'python', 2: 'python', 3: 'python', 4: 'python'}

d.update(d6)
d
{1: 'python', 2: 'python', 3: 'python', 'red': 3, 0: 'python', 4: 'python'}

字典删除

pop(key,default)

  • key存在,移除它,并返回它的value
  • key不存在,返回给定的default
  • 如果default没有设置,那么当key不存在时,使用pop会抛出异常
d.pop(5)
'a'

d.pop(6,'not exist')
'not exist'

popitem()

  • 移除并返回一个任意的键值对
  • 字典为empty,抛出KeyError异常
d.popitem()
(0, 'python')

d.popitem()
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
&lt;ipython-input-76-83c64cff336b> in &lt;module>()
----> 1 d.popitem()

KeyError: 'popitem(): dictionary is empty'

clear()

  • 清空字典
del语句

d = {'a': 1,'b': b,'c': [1,3,5]}

del d['a']

d
{'b': [], 'c': [1, 3, 5]}

字典遍历

1)遍历key

for k in d:
    print(k)

或

for k in d.keys():
     print(k)

2)遍历value

for k in d:
    print(d[k])

或

for k in d.keys():
     print(d.get(k))

或

for v in d.values():
    print(v)

或

for _,v in d.items():
     print(v)

defaultdict工厂函数

collections.defaultdict([default_factory,….])

  • 第一个参数是default_factory,缺省是None,它提供一个初始化函数,当key不存在的时候,会调用这个工厂函数来生成key对应的value

OrderedDict使用

collections.OrderedDict([items])

  • key并不是按照加入的顺序排列,可以使用OrderedDict记录顺序
  • 有序字典可以记录元素插入的顺序,打印的时候也是按照这个顺序输出打印
  • 3.6版本的字典就是记录Key插入的顺序