Python数据类型中的字典-创建和基本操作

Python当中字典的创建和基本操作

 

 

本章 含有 字典定义 及操作

l  字典定义

l  基本操作

l  常用方法

列表也是常用的数据类型-列表是最灵活的一个,甚至可以当成一个小的数据库,用来存储数据。

用列表存储数据的时候会非常的不方便,所谓的不方便,下面会有例子演示当中,比较一下。

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({}) 

格式如下 dict = {’key’:’value’, ’key’:’value’}

 

字典相关 定义

l  字典(dictionary)是除列表以外python之中 最灵活的内置数据结构类型。

l  区别:

字典当中的元素是通过键来存取,而不是通过偏移存取。

 

字典的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

 

 

字典可以说 是在python当中,除了列表以为 最灵活的内置数据类型了。

唯一的区别,就是我们在字典当中取值的时候,并不是像序列那样 通过索引取值。字典虽然有很多值,但是我们并不把字典称之为序列。因为在python2当中,ptthon3.几之前 字典都是无序的,只不过在最新的python当中 看起来有序,但是不能通过偏移去存取。

看一下它的区别-什么叫做通过键来取值,这就要说到列表和字典他们两个的区别了。

可以在回顾一下列表。

 

回顾列表案例

blob.png操作,程序是没有问题的,关键问题在于它并不能直观的反应,内容是什么

比如player1 、0号元素和1号元素,不方便知道 0 号代表的就是 字符串 milo,1号元素代表 整数 100。

看上面的数据结构

我们在定义的时候,不把它们定义到一起,在程序当中调用数据的时候,就会显示的不太直观。

也就是 这个值 它没有一个直观的名字。它只是声明的一个数字 用来做索引。

 这种情况下 用字典就非常方便了。下面来看下字典创建和使用

 

字典创建

字典的定义方式。

创建字典就是花括号{ key 和 value}  key我们叫做键 value叫做值,两个就是键值,

都是一对 一对 成对出现的。可以给值取个名字。比如 叫做 user 或者 HP 这样名字

然后通过这个名字 去取这个值。

 

创建字典案例

blob.png

现在我们得到一个列表。注意看我们现在得到一个列表,它是无序的,和列表是有区别的,这个不重要,因为我们取值都是不是通过索引。我们是通过名字,也就 说到的 kev 简写 K

 

字典取值写法 案例

blob.png

设计已经比较人性化了,我们要取里面的值,不需要记住索引,什么 0 位 啊  1 位的什么 ,我们只要记住 kev 名字是什么 就可以取值  。明显我们可以看出 这是一个非常标签化 人性化的一个索引。

好处 : 通过 名字 就知道 大概要获取到什么样的数据,方便的通过它的名字 获取到什么样的值,我们叫做 kev 和 value ,称之为 键值对。 kev 可以是 任何类型 比如 数字 字符串 甚至可以是任何一个对象,前面是一个索引 后面 是对应的对象。

blob.png看上去好像跟 列表一样, 实际上是有着 本质上的区别的。

是因为 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’)

 

字典增加一个值例子

blob.png字典里面 添加的数据不是按照我们添加的结构排列的

python3默认的排序,是按照顺序排列的,顺序目前对于一般的来说 影响不是特别大,因为我们是通过索引,kev 来取它的值

 

字典遍历例子

blob.png字典 既然 不是 一个 序列 ,那么 取值的 是通过key取值的

k会自动 迭代 字典当中的 k

d 字典 里面 迭代 k 索引1值

 

字典方法

blob.png

查看某个kev 在不在 字典里面,没有返回False ,有 返回True

 

还可以用 help(dict)查看字典 相关帮助

blob.png

 

help看的时候 比较 详细,比较多 ,查看方法的 可以用 dir(dict)

blob.png

 

 

字典更新

l  采取覆盖更新

1.  Dict[’key’]=’earth’

2.  更新dict[’key’] = ’qwer’

blob.png指定某一个kev 进行替换。让它 等于一个值 ,如果没有 就增加,如果有的话,就会进行更新。

 

 

删除字典和字典元素

l  Del dict1[’name’]# 删除键为’name’条目

l  Dict1.clear()# 删除dict中所有的条目

l  Del dict1#  删除整个dict1字典

l  Dict1.pop(’name’)# 删除并返回键为’name’的条目

 

字典并没有那么复杂,它和列表 类似,区别就是 它并不是像列表当中 是有序的,在字典当中是通过key 取值,不是像列表当中 通过偏移量来取的。

 

a)  删除条目

blob.png

2.  删除所有条目

blob.png

3.  删除整个字典

blob.png

4.  删除并返回键为’定义’的条目

blob.png

 

 

 

字典技巧

blob.png

 

Python字典包含了以下内置方法

 

 

1

Dict.clear()
 
删除字典内所有元素

2

dict.copy()
 
返回一个字典的浅复制

3

dict.fromkeys(seq[, val])
 
创建一个新字典,以序列   seq 中元素做字典的键,val 为字典所有键对应的初始值

4

dict.get(key,   default=None)
 
返回指定键的值,如果值不在字典中返回default值

5

dict.has_key(key)
 
如果键在字典dict里返回true,否则返回false

6

dict.items()  
 
以列表返回可遍历的(键, 值) 元组数组

7

dict.keys()
 
以列表返回一个字典所有的键

8

dict.setdefault(key, default=None)
 
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

9

dict.update(dict2)
 
把字典dict2的键/值对更新到dict里

10

dict.values()
 
以列表返回字典中的所有值

11

pop(key[,default])
 
删除字典给定键 key   所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12

popitem()
 
随机返回并删除字典中的一对键和值。

 

本章 获得知识点

了解 python 中, 字典创建。

字典的基本操作, 字典遍历 删除字典 更新字典等。


    2017年12月23日王宇林


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章