首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础—dict

python基础—dict

作者头像
dogfei
发布2020-07-31 11:36:26
4460
发布2020-07-31 11:36:26
举报
文章被收录于专栏:devops探索devops探索
字典是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插入的顺序
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • dict()方法
    • 字典删除
      • 字典遍历
        • defaultdict工厂函数
        • OrderedDict使用
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档