字典(dict)

1.什么是字典

字典是具有映射关系的一个集合,有自己的标志性符号,用{}来定义。字典由多个键以及其对应的键值共同构成的,字典是无序的,只讲究对应关系,并且字典中的键是独一无二的

1.创建一个字典

直接用{}来创建

empty = {}
empty

   {}

type(empty)

   dict

下面这种方式,键必须加引号,且键与值之间用 : (冒号)连接起来

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1

   {'a': 1, 'b': 2, 'c': 3}

使用dict()函数来创建

#
dict1 = dict((('a', 1), ('b', 2), ('c', 3)))
dict1

   {'a': 1, 'b': 2, 'c': 3}

也可以这样来写,与值之间用 = (等号)连接起来的话,键的位置不能加上字符串的引号,否则会报错

dict1 = dict(a = 1, b = 2, c = 3)
dict1

   {'a': 1, 'b': 2, 'c': 3}

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

   {'a': 1, 'b': 2, 'c': 3}

2.修改键的值

dict1['a'] = 2
dict1['b'] = 1
dict1

   {'a': 2, 'b': 1, 'c': 3}

3.字典的内置函数

1.fromkeys()函数

用于创建并返回一个新的字典,它有俩个参数:第一个参数是字典的键;第二个参数是传入键的值,如果不写,默认为None

dict1 = {}
dict1.fromkeys((1, 2, 3))

   {1: None, 2: None, 3: None}

dict2 = {}
dict2.fromkeys((1, 2, 3), "Number")

   {1: 'Number', 2: 'Number', 3: 'Number'}

dict3 = {}
dict3.fromkeys((1, 2, 3), ("noe", "two", "three"))

   {1: ('noe', 'two', 'three'),
    2: ('noe', 'two', 'three'),
    3: ('noe', 'two', 'three')}

2.访问字典的方法:keys()、value()和items()

keys()用于返回字典中的键,values()用于返回字典中所有的值,items()返回字典中所有的键值对

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.keys()

   dict_keys(['a', 'b', 'c'])

dict1.values()

   dict_values([1, 2, 3])

dict1.items()

   dict_items([('a', 1), ('b', 2), ('c', 3)])

3.get()函数

当键不存在时,get()方法并不会报错,只是默默的返回一个None,表示啥也没找到.

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.get('d')

如果希望找不到数据时,返回指定的值,可以在get()的第二个参数中设置对应的默认返回值

dict1.get("孙悟空","木有^_^")

   '木有^_^'

也可以通过in 和 not in 来判断一个键是否在字典中

30 in dict1

   False

'a' in dict1

   True

4.clear()函数

清空一个字典

dict1.clear()
dict1

   {}

使用clear()函数,可以使所有指向该字典的其他字典都清空

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict2 = dict1
dict1.clear()
dict1

   {}

dict2

   {}

5.copy()函数

用来复制字典

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict2 = dict1.copy()
id(dict1)

   1799550839400

id(dict2)

   1799550838896

dict1['a'] = 2
dict1

   {'a': 2, 'b': 2, 'c': 3}

dict2

   {'a': 1, 'b': 2, 'c': 3}

6.pop()和popitem()

pop()是给定键弹出的值,而popitem()是弹出一个键值对

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.pop('a')

   1

dict1

   {'b': 2, 'c': 3}

dict1.popitem()

   ('c', 3)

dict1

   {'b': 2}

7.setdefault()与get()类似,但是setdefault()在字典中找不到对应的键时会自动添加

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.setdefault('d')
dict1

   'a': 1, 'b': 2, 'c': 3, 'd': None}

8.update()

用来更新字典

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.update(a = 2)
dict1

   {'a': 2, 'b': 2, 'c': 3}

python数据结构之字典(dict)——超详细相关推荐

  1. python数据结构之元组(tuple)——超详细

    元组 元组和列表相比,元组不可改变,且创建的时候逗号(,)才是元组的标志所在,小括号只是起一个补充作用,为了看起来好理解 1.创建元组 tuple2 = 1, 2, 3, 4 tuple2    (1 ...

  2. python数据结构之列表(list)——超详细

    列表 1.创建方式 [] 或 list() a = [] # 表示一个空列表 a = [1, 2, 3, 4, 5] a    [1, 2, 3, 4, 5] list("hello wor ...

  3. python数据结构之集合(set)——超详细

    集合 1.什么是集合 用一个大括号括起一堆元素,用逗号隔开,并且里面的元素唯一,称之为集合,和数学上的集合类似 num = {1, 2, 3, 4, 5} num    {1, 2, 3, 4, 5} ...

  4. python容器类型——字典{dict}

    python容器类型--字典{dict} 文章目录 python容器类型--字典{dict} 一.特点 二.定义 三.字典的基本操作 1.查看 2.增加.修改 3.删除 4.合并字典 5.成员关系 6 ...

  5. 3.【Python编程】字典Dict相关知识及基本操作

    目录 3.[Python编程]字典Dict相关知识及基本操作 3.1 字典的创建 3.2 访问字典里的值 3.3 修改字典 3.4 删除字典元素 3.5 字典的常用函数 3.[Python编程]字典D ...

  6. python如何得出数组里最大_如何理解Python里的字典dict?

    字典dict由键值key-value构成,具有较强的查询检索能力. 基本格式为: dict={key1:value1,key2:value2,......,keyn,valuen } 1.key由数字 ...

  7. python映射类型-Python 映射类型字典dict操作定义

    Python映射类型字典基础知识:字典是用大括号{ }来表示,它是python中最灵活的内置数据类型.它是一个无序的集合,通过键来存取值,而不能用索引. 字典的创建和使用 字典的组成:字典是由大括号{ ...

  8. 【python代码】:使用 Python解密摩斯密码,教程超详细,懂中文就会

    前言 摩斯密码是一种将文本信息作为一系列通断的音调.灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译.它以电报发明者Samuel F. B. Morse的名字命名. 算法 算法非常简单. ...

  9. 使用 Python解密摩斯密码,教程超详细,懂中文就会!

    摩斯密码是一种将文本信息作为一系列通断的音调.灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译.它以电报发明者Samuel F. B. Morse的名字命名. 点击免费领取<CSD ...

最新文章

  1. C#写webservice(2)
  2. 智能连接:5G与人工智能、物联网等技术的超级融合
  3. double转换为int以及浮点型相加损失精度问题
  4. Freemarker介绍
  5. Leetcode题库 5.最长回文子串(C++实现)
  6. 当你和天猫精灵对话时,它在想什么?阿里智能对话技术深度解读
  7. Python之路(第二篇):Python基本数据类型字符串(一)
  8. php 去掉多维数组的键名,去除多维数组的最外层key 保留值
  9. 基于docker使用jenkins集成sonar
  10. 资源放送丨《SQL条件等价改写秘笈》PPT视频
  11. linux nfs iscsi,对比平台--iSCSI和NFS之间的区别
  12. Linux的内核性能参数的调整
  13. U盘大容量存储设备 感叹号,错误10
  14. Ubuntu 16.04 安装SecureCRT破解版
  15. 直接通过ODBC读写Excel表格文件 译者:徐景周(原作:Alexander Mikula)
  16. 资深iOS/Android开发工程师
  17. Android静态安全检查(九):不安全的SDCard存储检测
  18. SWIG和MapGuide Web API
  19. 产品经理和软件工程师的职能划分
  20. docker搭建c++开发环境

热门文章

  1. asp.net 页面数据导入word模板
  2. LeetCode 542. 01 Matrix
  3. 25. ThreadLocal的使用场景
  4. Cocoapods应用(001-简介以及安装和卸载)
  5. zz详细讲解Quartz.NET
  6. 【Java从0到架构师】Spring - AOP
  7. Github图片无法打开的问题解决【2020.07.20更新】
  8. Centos6离线安装docker 解决相关依赖
  9. opencv学习笔记02
  10. 用几小时,零基础也能学会可视化大屏,这百张模板帮了大忙