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

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日王宇林

本文转自

新网学会 51CTO博客,原文链接:http://blog.51cto.com/xwxhvip/2053761 ,如需转载请自行联系原作者

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

  1. Python——列表中存放字典遇到的问题

    Python--列表中存放字典遇到的问题 使用列表.字典之间的相互嵌套可以很容易的实现json数据格式,但是昨天在往列表中装入字典时遇到了问题: 直接使用append方法将字典添加到列表中,如果需要更 ...

  2. 【python笔记九】字典创建、字典增删改查、字典常用操作

    笔记九 python字典 字典创建 1.直接使用{} 2.使用dict() 3.空字典 字典的增删改查 增加 删除 修改 查找 字典的操作方法 get() keys() items() values( ...

  3. python虚拟环境中安装diango_创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...

    一.创建python虚拟环境 首先,为什么要创建python的虚拟环境? 因为,在实际的项目开发中,每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要 我们根据需求不断的更新或卸载相应的库 ...

  4. python列表中的字典怎么遍历,如何遍历字典列表中的嵌套字典?

    对Python还是新手,需要一些帮助.我找到了一些在字典列表中迭代的答案,但没有找到在字典列表中嵌套字典的答案.在 以下是字典列表中单个字典的大致结构[{ 'a':'1', 'b':'2', 'c': ...

  5. python列表中的字典怎么遍历_Python循环遍历列表中的嵌套字典或字典

    我有一些我需要处理的数据. 它看起来像字典中字典中的字典,所有字典都存储在列表中! 这是解析的JSON数据,所以我无法控制它的格式. 以下是一些数据,我删除了很多数据,因为它不相关且简洁: devic ...

  6. python列表中的字典如何添加键值对_在Python中将键值对添加到字典中

    Python字典是键值对的无序集合.在本教程中,我们将看到如何将新的键值对添加到已经定义的字典中.以下是我们可以使用的两种方法. 将新键分配为下标 我们通过使用新键作为下标并为其分配值来向字典添加新元 ...

  7. python基础-07-元组/字典的常用基本操作

    题目1 •敏感词判断 li = ["苍井空","波多野结衣","武藤兰","东京热"] •将用户输入的敏感词替换成* • ...

  8. python put指令是什么意思_在Python请求中的字典中的PUT字典

    我想发送一个具有以下数据结构的PUT请求: { body : { version: integer, file_id: string }} 这是客户端代码: def check_id(): id = ...

  9. python \uxxxx转中文,Python列表中的字典 \uxxxx转中文,

    import jsona = [{u'mobile': u'8973', u'userName': u'\u738b\u738d', u'idCard': u'110222196308253111', ...

最新文章

  1. vs报错 已经在 helpers.obj 中定义
  2. python 各层级目录下的import方法
  3. yum mysql 5.1 innodb_Yum升级mysql5.1到5.6
  4. 我死了,你会娶别的女人吗?
  5. mysql分组查询统计求和
  6. python程序memory error_Python memory error的问题
  7. [pytorch] 深度学习分割网络U-net的pytorch模型实现 原创 2017年03月08日 21:48:21 标签: python / 深度学习 / 生物图
  8. iTerm2 + Fish 打造高效终端
  9. python 希尔伯特变换_信号处理——Hilbert变换及谱分析
  10. 阿里巴巴图库下载的在线图标显示为方框的问题
  11. memcpy和memmove以及memcmp
  12. .NET反编译工具Reflector及插件
  13. Python给照片换底色(蓝底换红底)
  14. Leet Code题(2)——整数反转
  15. windows 下在 码市(coding.net) 上配置远程 git
  16. 三阶魔方CFOP还原方法图解
  17. 测试用例的设计方法及案例
  18. PBC Library Manual(PBC库手册)翻译(一)
  19. 2018年贺岁档电影票房大数据报告!国产电影的黄金时代已经到来?
  20. Nature:交互式语言的语音规划网络

热门文章

  1. MOVW 和 rep
  2. 《深入理解计算机网络》读书笔记一
  3. MongoDB数据节点基础操作
  4. matlab练习程序(图像旋转,最邻近插值)
  5. 使用Zabbix监控ZooKeeper服务的健康状态
  6. 关于AIX lv 4k offset问题初步了解
  7. Android重要组件之一 Service 服务讲解学习(一)
  8. 一个棒棒糖引发的。。。
  9. 微信小程序 跳转界面
  10. C语言——日常刷题(一)