字典是一种映射类型的数据类型。辣么什么是映射呢?如果看过《数据结构与算法》这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻)。

  映射:就是将两个集合一 一对应起来,通过集合a的值,集合b有且只有一个与之对应。字典是Python中唯一的内置映射类型。

1 创建和使用字典

  字典以类似于下面的方式表示:

  phonebook = {'A':'a','B':'b','C':'c'}

  字典由和其相应的组成,这种键-值对称为。每个键与值之间用冒号( : )分隔开,每项用逗号分隔,并且在字典以及其他映射类型中,键都是独一无二的的。空字段用 {} 表示。

  1.1 函数dict

  可以使用函数 dict (与list、tuple和str一样,dict也是一个类)从其他映射或键-值对序列创建字典。

  items = [('name','AA'),('age',42)]        dict(items)

  items = [name='AA',age=42]              dict(items)

  1.2 字典的基本操作

  字典的基本行为同序列有很多类似。

  • len(d) 返回字典d包含项的个数
  • d[key] 返回与键key相关联的值,当key在字典d中不存在的时候,会报错。
  • d[key]=val 将值val关联到键key,如果键key原来存在,则相当于赋值,否则新添加到字典d中。
  • del d[key] 删除键为key的项。如果key在字典中不存在,则会报错。
  • key in d 检查字典d是否包含键为key的项。相比于检查列表是否包含指定值,检查字典是否包含指定值得效率更高。

  1.3 将字符串格式设置功能用于字典

  对于字符串,通过format_map可以将格式字符串中的参数使用字典来进行赋值。如:

  d = {'a':123,'b':234,'c':345,'d':456}  '{a} + 111 =  {b}'.format_map(d)

  1.4 字典方法

    1.4.1 clear

    方法clear删除所有的字典项,对齐进行清空。

    1.4.2 copy

    方法copy返回一个与原来字典一样的新字典。但是这个方法执行的是浅复制,只包含值,而非副本。

    方法deepcopy执行的是深复制,即同时复制值及包含的所有值。

    1.4.3 fromkeys

    方法fromkeys创建一个新字典,其中包含指定的键,默认每个键对应的值都是None。

    {}.fromkeys(['name','age'])  / dict.fromkeys(['name','age']) / dict.fromkeys(('name','age'),'xxx')

    1.4.4 get

    方法get用于获取字典中key的值,当key不存在时,不会报错,返回None。并且当不存在的时候,还可以进行“默认”指定值。

    d.get('name') / d.get('name','name不存在')

    1.4.5 items

    方法items返回一个包含所有字典项的列表,其中每个元素都以(key,value)的形式。且顺序不定。

    d.items()    [(key1,value1),(key2,value2).......]

    这种以(key,value)形式返回的类型名叫字典视图。字典视图可用于迭代(将在后面介绍)。字典视图始终是底层字典的反映,即修改了字典的值,字典视图也会跟着修改。

    1.4.6 keys

    方法keys返回一个包含字典中键的字典视图。

    1.4.7 pop

    方法pop获取与指定键相关联的值,并将该键对应的项从字典中删除。当键key不存在时,会报错。

    1.4.8 popitem

    方法popitem随机返回一个字典项的值,并删除该项。

    1.4.9 setdefault

    方法setdefault用于向字典中添加指定的键-值对,如果存在键key,则更新,不存在,则新增。

    1.4.10 update

    方法update使用一个字典的项来更新另一个字典。如d1.update(d2)。

    1.4.11 values

    方法values返回一个由字典中的值组成的字典视图,包含重复值。

python学习笔记(三)、字典的更多相关文章

  1. python学习笔记(三)---字典

    字典 在Python中,字典 字典 是一系列键 键-值对 值对 .每个键 键 都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将 任何Py ...

  2. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  3. Python 学习笔记三

    笔记三:函数 笔记二已取消置顶链接地址:http://www.cnblogs.com/dzzy/p/5289186.html 函数的作用: 給代码段命名,就像变量給数字命名一样 可以接收参数,像arg ...

  4. python学习笔记三--字典

    一.字典: 1. 不是序列,是一种映射, 键 :值的映射关系. 2. 没有顺序和位置的概念,只是把值存到对应的键里面. 3. 通过健而不是通过偏移量来读取 4. 任意对象的无序集合 5. 可变长,异构 ...

  5. python学习笔记(三)-列表&字典

    列表: 一.列表操作"""Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一 ...

  6. python学习笔记三--字典的使用

    一.基本使用: 1. 赋值:{key:value} 1.1 与列表相同处:会改变索引(键)相关联的值的改变 1.2 与列表不同处:不用考虑值的长度,而列表是有序的需要考虑末尾偏移量,超过末尾偏移量的会 ...

  7. python 学习笔记(三)根据字典中值的大小对字典中的项排序

    字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现: 一.利用zip函数将字典数据转化为 ...

  8. 【Python学习笔记】字典操作

    字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...

  9. webdriver(python) 学习笔记三

    知识点:简单的对象定位 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪 ...

随机推荐

  1. 大数据之hiveSQL

    最近增加了学习java基础算法,包括几种排序算法,二叉树(前序,后序,中序),队列和栈,bmp搜索,广义搜索算法,迭代等等一些技巧(自己动手绝对比单纯的理论要强的多,多练练) HIVE是hadoop生 ...

  2. 132.leecode-Palindrome Partitioning II

    这个题需要两个dp,一个保存从i到j是否为回文串 另一个保存0到i的最小的分割 下面是我的效率不太高的代码 class Solution { public: int minCut(string s) ...

  3. 酷炫,用Html5/CSS实现文字阴影

    前两天有一个学html5前端小美女问我一个有关文字阴影的效果怎么去实现.她和我说文字阴影嘛,她也知道text-shadow,.但是却做不出想要的样子,其实css3的新功能是很强大的,不要把你的思想太过 ...

  4. Android JNI 学习(四):接口方法表 & Base Api & Exception Api

    本文我们来总结一下JNI 提供的功能列表及相关的函数表. 注意:请注意使用术语“必须”来描述对JNI程序员的限制.例如,当您看到某个JNI函数必须接收非NULL对象时,您有责任确保不将NULL传递给该 ...

  5. 四面美团,收割 offer

    阅读本文大概需要 6 分钟. 来源:https://blog.csdn.net/csuliyajin2012/article/details/49430659 美团我是在拉勾网上投的简历,之前也投过一 ...

  6. map,set和weakmap,weakset

    概述 set和map属于es6的内容,今天在看书的时候遇到了,所以好好的总结一下,供以后开发时参考,相信对其他人也有用. 参考资料: mdn Keyed collections Map和WeakMap ...

  7. Kubernetes 笔记 01 初识 Kubernetes 新时代的领航者

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 大明王朝时期, ...

  8. python基础-字典(8)

    一.字典介绍 字典和列表一样,也是存储多个数据的容器,只不过存储和读取的方式不同 字典的语法格式: 字典名 = {key1 : value1,key2:value2,key3:value3,……} 说 ...

  9. [原创]K8Cscan插件之端口扫描C#源码

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  10. VueJs(6)---V-on指令

    V-on指令 一.概述 v-on是用来绑定事件监听器,用在普通元素上时,只能监听原生 DOM 事件.用在自定义元素组件上时,也可以监听子组件触发的自定义事件. 在监听原生 DOM 事件时,方法以事件为 ...