Python数据类型中的字典-创建和基本操作
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]) |
4 |
dict.get(key, default=None) |
5 |
dict.has_key(key) |
6 |
dict.items() |
7 |
dict.keys() |
8 |
dict.setdefault(key, default=None) |
9 |
dict.update(dict2) |
10 |
dict.values() |
11 |
pop(key[,default]) |
12 |
popitem() |
本章 获得知识点
了解 python 中, 字典创建。
字典的基本操作, 字典遍历 删除字典 更新字典等。
2017年12月23日王宇林
本文转自
新网学会 51CTO博客,原文链接:http://blog.51cto.com/xwxhvip/2053761 ,如需转载请自行联系原作者
Python数据类型中的字典-创建和基本操作相关推荐
- Python——列表中存放字典遇到的问题
Python--列表中存放字典遇到的问题 使用列表.字典之间的相互嵌套可以很容易的实现json数据格式,但是昨天在往列表中装入字典时遇到了问题: 直接使用append方法将字典添加到列表中,如果需要更 ...
- 【python笔记九】字典创建、字典增删改查、字典常用操作
笔记九 python字典 字典创建 1.直接使用{} 2.使用dict() 3.空字典 字典的增删改查 增加 删除 修改 查找 字典的操作方法 get() keys() items() values( ...
- python虚拟环境中安装diango_创建python虚拟环境,安装django,创建一个django项目,在项目中创建一个应用(ubuntu16.04)...
一.创建python虚拟环境 首先,为什么要创建python的虚拟环境? 因为,在实际的项目开发中,每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要 我们根据需求不断的更新或卸载相应的库 ...
- python列表中的字典怎么遍历,如何遍历字典列表中的嵌套字典?
对Python还是新手,需要一些帮助.我找到了一些在字典列表中迭代的答案,但没有找到在字典列表中嵌套字典的答案.在 以下是字典列表中单个字典的大致结构[{ 'a':'1', 'b':'2', 'c': ...
- python列表中的字典怎么遍历_Python循环遍历列表中的嵌套字典或字典
我有一些我需要处理的数据. 它看起来像字典中字典中的字典,所有字典都存储在列表中! 这是解析的JSON数据,所以我无法控制它的格式. 以下是一些数据,我删除了很多数据,因为它不相关且简洁: devic ...
- python列表中的字典如何添加键值对_在Python中将键值对添加到字典中
Python字典是键值对的无序集合.在本教程中,我们将看到如何将新的键值对添加到已经定义的字典中.以下是我们可以使用的两种方法. 将新键分配为下标 我们通过使用新键作为下标并为其分配值来向字典添加新元 ...
- python基础-07-元组/字典的常用基本操作
题目1 •敏感词判断 li = ["苍井空","波多野结衣","武藤兰","东京热"] •将用户输入的敏感词替换成* • ...
- python put指令是什么意思_在Python请求中的字典中的PUT字典
我想发送一个具有以下数据结构的PUT请求: { body : { version: integer, file_id: string }} 这是客户端代码: def check_id(): id = ...
- python \uxxxx转中文,Python列表中的字典 \uxxxx转中文,
import jsona = [{u'mobile': u'8973', u'userName': u'\u738b\u738d', u'idCard': u'110222196308253111', ...
最新文章
- vs报错 已经在 helpers.obj 中定义
- python 各层级目录下的import方法
- yum mysql 5.1 innodb_Yum升级mysql5.1到5.6
- 我死了,你会娶别的女人吗?
- mysql分组查询统计求和
- python程序memory error_Python memory error的问题
- [pytorch] 深度学习分割网络U-net的pytorch模型实现 原创 2017年03月08日 21:48:21 标签: python / 深度学习 / 生物图
- iTerm2 + Fish 打造高效终端
- python 希尔伯特变换_信号处理——Hilbert变换及谱分析
- 阿里巴巴图库下载的在线图标显示为方框的问题
- memcpy和memmove以及memcmp
- .NET反编译工具Reflector及插件
- Python给照片换底色(蓝底换红底)
- Leet Code题(2)——整数反转
- windows 下在 码市(coding.net) 上配置远程 git
- 三阶魔方CFOP还原方法图解
- 测试用例的设计方法及案例
- PBC Library Manual(PBC库手册)翻译(一)
- 2018年贺岁档电影票房大数据报告!国产电影的黄金时代已经到来?
- Nature:交互式语言的语音规划网络