1.5字典

作者: Benedict清水 | 来源:发表于2020-06-09 09:05 被阅读0次

一、字典

字典是python核心对象集合中唯一的一种映射类型,它是通过键(key)而不是相对位置存储对象的,映射并没有维护任何可靠的从左到右的顺序。

  1. 字面量构建字典
D = {} #空字典
D['name'] = 'Bob'
----
D = {'name': 'Bob', 'age', '40'} #两个元素的字典

如果需要一次动态的建立字典一个字段,那么第一种比较合适
如果可以实现一次性拼凑出整个字典,那么第二种比较合适

  1. 工厂函数创建字典
D = dict()
D['name'] = 'Bob'
  1. 其他创建字典的方式
D = dict(name = 'Bob', age = 40)
----
D = dict([('name','Bob'),('age',40)])
----
D = dict(zip(keyslist,valslist))
----
>>> D = dict.fromkeys(['a','b'],'c')
>>> D
{'a': 'c', 'b': 'c'}

第一种所需的代码比字面量少,但是键必须都是字符串
如果需要在程序运行时通过序列构建字典,那么第二种比较合适
在程序运行时动态获取单独键列表和单独值列表需要一一对应拼接在起时可以与zip函数一起使用
如果所有的键的值一开始都相同,就可以用第四种方式

二、字典的操作

  1. 映射操作:取值、修改
>>> D = {'spam':2, 'ham':3,'eggs':4}
>>> D['spam']
2
----
>>> D['spam'] = '五'
>>> D
{'spam': '五', 'ham': 3, 'eggs': 4}
----
  1. 字典的其他操作
>>> D = {'spam':2, 'ham':3,'eggs':4}
>>> D.keys() #返回字典中所有的键列表
dict_keys(['spam', 'ham', 'eggs'])

>>> D.values() #返回字典中所有的值列表
dict_values([2, 3, 4])

>>> D.items() #返回字典中(key,value)对元组
dict_items([('spam', 2), ('ham', 3), ('eggs', 4)])

>>> D.get('toast')
>>> print(D.get('toast'))
None

>>> D.pop('ham')
3
>>> D
{'spam': 2, 'eggs': 4}

>>> D
{'spam': 2, 'eggs': 4}
>>> D1 = {'toast':5,'ham':3}
>>> D.update(D1)
>>> D
{'spam': 2, 'eggs': 4, 'toast': 5, 'ham': 3}

三、字典推导

字典推导也是隐式的运行一个循环,根据每次迭代收集表达式的键/值结果,并且使用它们来填充一个新的字典。
例如:

D = dict(zip(['a','b','c'],[1,2,3]))

>>> D = dict(zip(['a','b','c'],[1,2,3]))
>>> D
{'a': 1, 'b': 2, 'c': 3}

也可以通过字典推导表达式来实现同样的效果

D = {k:v for (k,v) in zip(['a','b','c'],[1,2,3])}

>>> D = {k:v for (k,v) in zip(['a','b','c'],[1,2,3])}
>>> D
{'a': 1, 'b': 2, 'c': 3}

利用字典推导实现键/值翻转

>>> D = {v:k for (k,v) in zip(['a','b','c'],[1,2,3])}
>>> D
{1: 'a', 2: 'b', 3: 'c'}

四、字典注意事项

字典的键不一定式字符串,任何不可变对象都是可以的。

  1. 整数键
>>> D = {}
>>> D[99] = 'python'
>>> D
{99: 'python'}
  1. 元组键
>>> Matrix = {}
>>> Matrix[(1,2,3)]=99
>>> Matrix
{(1, 2, 3): 99}

相关文章

  • 1.5 字典

    字典(Dictionary)与数组是程序设计语言的两个台柱子,这两种数据结构不但以自己的形象高频出镜,而且我们可以...

  • 1.5字典

    一、字典 字典是python核心对象集合中唯一的一种映射类型,它是通过键(key)而不是相对位置存储对象的,映射并...

  • 软考-结构化分析(下)

    答案 1.1 - 1.5 A D C A C2.1 - 2.3 B A A 知识点分析 《概念》【数据字典条目包括...

  • 【python3小白上路系列】添加开炮功能~

    1.5 射击 下面我们来添加射击功能,向我开炮!玩家按空格键时发射字典,子弹在屏幕中向上穿行,抵达屏幕边缘后消失。...

  • enum枚举在实际项目中的常用方法

    在项目实际开发过程中,经常会遇到对某些固定的值、字典项的定义的需求,很多项目经常使用常量来定义,其实在jdk1.5...

  • day9-课程总结

    1.字典 增:字典[key] = 值; 字典.setdefaule(key, 值);字典.update(字典)删:...

  • swift--字典

    创建字典 字典的基本操作 遍历字典 字典合并

  • Swift学习系列 字典的使用

    字典的概念 字典的初始化 字典元素的基本操作 字典的基本操作 字典的遍历 字典合并

  • 字典

    创建字典 访问字典中的值 修改、添加字典 修改字典中的值 在末尾增添新的键/值 删除字典元素 删除字典 清空字典 ...

  • 新2019计划:python学习-字典【4】

    字典 本篇章讲述数据结构字典,主要围绕如何访问字典,如何修改字典,如何删除字典某元素,如何遍历字典,字典的常见方法...

网友评论

      本文标题:1.5字典

      本文链接:https://www.haomeiwen.com/subject/yogjtktx.html