Python当中字典的创建和基本操作
本章 含有 字典定义 及操作
l 字典定义
l 基本操作
l 常用方法
列表也是常用的数据类型-列表是最灵活的一个,甚至可以当成一个小的数据库,用来存储数据。
用列表存储数据的时候会非常的不方便,所谓的不方便,下面会有例子演示当中,比较一下。
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
格式如下 dict = {’key’:’value’, ’key’:’value’}
字典相关 定义
l 字典(dictionary)是除列表以外python之中 最灵活的内置数据结构类型。
l 区别:
字典当中的元素是通过键来存取,而不是通过偏移存取。
字典的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
字典可以说 是在python当中,除了列表以为 最灵活的内置数据类型了。
唯一的区别,就是我们在字典当中取值的时候,并不是像序列那样 通过索引取值。字典虽然有很多值,但是我们并不把字典称之为序列。因为在python2当中,ptthon3.几之前 字典都是无序的,只不过在最新的python当中 看起来有序,但是不能通过偏移去存取。
看一下它的区别-什么叫做通过键来取值,这就要说到列表和字典他们两个的区别了。
可以在回顾一下列表。
回顾列表案例
操作,程序是没有问题的,关键问题在于它并不能直观的反应,内容是什么
比如player1 、0号元素和1号元素,不方便知道 0 号代表的就是 字符串 milo,1号元素代表 整数 100。
看上面的数据结构
我们在定义的时候,不把它们定义到一起,在程序当中调用数据的时候,就会显示的不太直观。
也就是 这个值 它没有一个直观的名字。它只是声明的一个数字 用来做索引。
这种情况下 用字典就非常方便了。下面来看下字典创建和使用
字典创建
字典的定义方式。
创建字典就是花括号{ key 和 value} key我们叫做键 value叫做值,两个就是键值,
都是一对 一对 成对出现的。可以给值取个名字。比如 叫做 user 或者 HP 这样名字
然后通过这个名字 去取这个值。
创建字典案例
现在我们得到一个列表。注意看我们现在得到一个列表,它是无序的,和列表是有区别的,这个不重要,因为我们取值都是不是通过索引。我们是通过名字,也就 说到的 kev 简写 K
字典取值写法 案例
设计已经比较人性化了,我们要取里面的值,不需要记住索引,什么 0 位 啊 1 位的什么 ,我们只要记住 kev 名字是什么 就可以取值 。明显我们可以看出 这是一个非常标签化 人性化的一个索引。
好处 : 通过 名字 就知道 大概要获取到什么样的数据,方便的通过它的名字 获取到什么样的值,我们叫做 kev 和 value ,称之为 键值对。 kev 可以是 任何类型 比如 数字 字符串 甚至可以是任何一个对象,前面是一个索引 后面 是对应的对象。
看上去好像跟 列表一样, 实际上是有着 本质上的区别的。
是因为 1 这个 kev 值 对于的是a,所以 获取到才是 a
字典属性
l 通过键 而不是偏移量来读取
l 任意对象的引用的集合(联想列表存储结构图)
l 可变,异构,任意嵌套
l 属于可变映射类型
l 对象引用表(哈希表-支持快捷检索的数据结构)
字典访问
l 通过Key访问Value
l 单个访问
dict[’key’]
l 遍历
For key in dict
…print ’key’= %s,value =%s’%’(key,dict[key])
l 方法
’key’in dict 或dict.has_key(’key’)
字典增加一个值例子
字典里面 添加的数据不是按照我们添加的结构排列的。
是python3默认的排序,是按照顺序排列的,顺序目前对于一般的来说 影响不是特别大,因为我们是通过索引,kev 来取它的值
字典遍历例子
字典 既然 不是 一个 序列 ,那么 取值的 是通过key取值的
k会自动 迭代 字典当中的 k
d 字典 里面 迭代 k 索引1值
字典方法
查看某个kev 在不在 字典里面,没有返回False ,有 返回True
还可以用 help(dict)查看字典 相关帮助
help看的时候 比较 详细,比较多 ,查看方法的 可以用 dir(dict)
字典更新
l 采取覆盖更新
1. Dict[’key’]=’earth’
2. 更新dict[’key’] = ’qwer’
指定某一个kev 进行替换。让它 等于一个值 ,如果没有 就增加,如果有的话,就会进行更新。
删除字典和字典元素
l Del dict1[’name’]# 删除键为’name’条目
l Dict1.clear()# 删除dict中所有的条目
l Del dict1# 删除整个dict1字典
l Dict1.pop(’name’)# 删除并返回键为’name’的条目
字典并没有那么复杂,它和列表 类似,区别就是 它并不是像列表当中 是有序的,在字典当中是通过key 取值,不是像列表当中 通过偏移量来取的。
a) 删除条目
2. 删除所有条目
3. 删除整个字典
4. 删除并返回键为’定义’的条目
字典技巧
Python字典包含了以下内置方法
1 | Dict.clear() 删除字典内所有元素 |
2 | dict.copy() 返回一个字典的浅复制 |
3 | 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
4 | 返回指定键的值,如果值不在字典中返回default值 |
5 | 如果键在字典dict里返回true,否则返回false |
6 | 以列表返回可遍历的(键, 值) 元组数组 |
7 | 以列表返回一个字典所有的键 |
8 | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | 把字典dict2的键/值对更新到dict里 |
10 | 以列表返回字典中的所有值 |
11 | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 | 随机返回并删除字典中的一对键和值。 |
本章 获得知识点
了解 python 中, 字典创建。
字典的基本操作, 字典遍历 删除字典 更新字典等。
2017年12月23日王宇林