py教学之字典
字典简介
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d =
我的见解是:
字典就是很多不同的键值对的组合
就如想字典一样,每一个一个字就是一个键,下面的解释就是每一个值
键值对:就是简洁明了的证实每个对应关系的表述格式
然后就可以方便函数去读取键值对生成相应的表
可以理解为就是一个字典就是横着画的表
创建字典
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
一个简单的字典实例:
tinydict =
tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }
关于值这里强调一下
当然字典里面的值可能是列表类型,元组类型
doc={'asda': ['dasda',123123],2:('dasdasda',2112123123),4:1231231}
print(doc)
这样依然是可以运行的
创建空字典
使用大括号 { } 创建空字典:
# 使用大括号 {} 来创建空字典
emptyDict = {}
# 打印字典
print(emptyDict)
# 查看字典的数量
print("Length:", len(emptyDict))
# 查看类型
print(type(emptyDict))
结果:
{}
Length: 0
<class 'dict'>
赋值的方式进行创建
doc=dict()
doc['sdada']='dasda'
doc[112]=12313
print(doc)
访问字典的值
用方括号访问具体的值
tinydict = {'Name': '123123', 'Age': 7, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])
如果用字典里没有的键访问数据,会输出错误如下:
print ("tinydict['Alice']: ", tinydict['Alice'])
Traceback (most recent call last):
File "test.py", line 5, in
print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'
修改字典
因为字典的键的值是不允许被随意修改的,而且要想修改相应的值必须锁定相应的键,大部门都是改值
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8 # 更新 Age
tinydict['School'] = "菜鸟教程" # 添加信息
print ("tinydict['Age']: ", tinydict['Age'])
print ("tinydict['School']: ", tinydict['School'])
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显式删除一个字典用del命令,如下实例:
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # 删除键 'Name'
print(tinydict)
tinydict.clear() # 清空字典
print(tinydict)
下面看一下删除之后的报错
del tinydict # 删除字典
print(tinydict)
del() 方法后面也会讨论
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
tinydict = {'Name': 'sdasd', 'Age': 7, 'Name': '小菜鸟'}
print ("tinydict['Name']: ", tinydict['Name'])
tinydict['Name']: 小菜鸟
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
tinydict = {['Name']: 'asdasd', 'Age': 7}
print ("tinydict['Name']: ", tinydict['Name'])
Traceback (most recent call last):
File "test.py", line 3, in
tinydict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'
嵌套字典
tinydict = {'RUNOOB' : {'url' : 'www.runoob.com'}}
字典的相关函数
get()
Python 字典 get() 函数返回指定键的值。
语法
dict.get(key[, value(可选)])
key -- 字典中要查找的键。
value -- 可选,如果指定键的值不存在时,返回该默认值。
返回指定键的值,如果键不在字典中返回默认值 None 或者设置的默认值。
tinydict = {'Name': 'Runoob', 'Age': 27}
print ("Age : ", tinydict.get('Age'))
# 没有设置 Sex,也没有设置默认的值,输出 None
print ("Sex : ", tinydict.get('Sex'))
# 没有设置 Salary,输出默认的值 0.0
print ('Salary: ', tinydict.get('Salary', 0.0))
Age : 27
Sex : None
Salary: 0.0
与 dict[key] 访问元素区别
get(key) 方法在 key(键)不在字典中时,可以返回默认值 None 或者设置的默认值。
dict[key] 在 key(键)不在字典中时,会触发 KeyError 异常。
update() 方法
Python 字典 update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。
update() 方法语法:
dict.update(dict2)
tinydict = {'Name': 'Runoob', 'Age': 7}
tinydict2 = {'Sex': 'female' }
tinydict.update(tinydict2)
print ("更新字典 tinydict : ", tinydict)
keys() 方法
Python3 字典 keys() 方法返回一个视图对象。
dict.keys()、dict.values() 和 dict.items() 返回的都是视图对象( view objects),提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化。
dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
keys = dishes.keys()
values = dishes.values()
items=dishes.items()
pop方法
Python 字典 pop() 方法删除字典 key(键)所对应的值,返回被删除的值。
语法
pop(key[,default])
key - 要删除的键
default - 当键 key 不存在时返回的值
报错
如果 key 存在 - 删除字典中对应的元素
如果 key 不存在 - 返回设置指定的默认值 default
如果 key 不存在且默认值 default 没有指定 - 触发 KeyError 异常
py教学之字典的更多相关文章
- py教学之集合
集合的概念 集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字 ...
- py教学之元组
元组介绍 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号 ( ),列表使用方括号 [ ]. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. tup1 = ...
- py教学之列表
列表是什么 list 是一些元素按照一定顺序排列的元素集合 序列是 Python 中最基本的数据结构. 序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推. Py ...
- py教学 之字符串处理·····
访问字符串中的值 Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用. Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下: 变量 ...
- python第五天 字典
今天,已经系统的学习了一下文件相关操作!对三级菜单代码进行的优化: 菜单文件:以字典格式 menu.txt {'第一层':{'第二层':{'第三层':['内容1','内容2','内容3']}},'第一 ...
- Python——字典与字典方法
字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种结构类型也称之为映射.字典类型是Python中唯一內建的映射类型,基本的操作包括如下: (1)len():返回字典中键— ...
- Python 学习第十九天 django知识
一,django 知识总结 1,同一个name属性的标签,多个值获取 <form action="/login/" method="POST" encty ...
- python之ATM
每次做一点就发出来,大神不要嫌重复 2016/11/4 今天来搞ATM,反正逃不了的,说来惭愧,这个作业是我10/4号20天前拿到的,当时是万脸蒙比的,今天又做了一点,现在算是百脸蒙比吧. 一.需求: ...
- SQLMAP源码分析-目录结构
-----------------------------------------------------------------------------│ README.md│ sqlmap.c ...
随机推荐
- 云小课|MRS基础原理之MapReduce介绍
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:MapReduce ...
- Codeforces Round #805 (Div. 3)G2. Passable Paths
题目大意: 给出一个无向无环连通图(树),n个点n-1条边,m次查询,每次询问给出一个集合,问集合里的树是否都在同一条链上(即能否不重复的走一条边而遍历整个点集) 思路:通过求lca,若有三个点x,y ...
- mybatis一对多映射分页的问题
一对多可能会出现分页错误 条数不对的问题 解决方法: 将主表分页查询一次 SELECT aa.id,aa.name,bb.name FROM (SELECT * from tab1 ORDER BY ...
- 【初赛】CSP 2020 第一轮(初赛)模拟记录
感觉初赛不过关,洛谷上找了一套没做过的来练习. 顺便写了详细的题解. 试题用时:1h 单项选择: 第 1 题 十进制数 114 的相反数的 8 位二进制补码是: A.10001110 B.100011 ...
- Kubernetes核心技术-Controller
Kubernetes核心技术-Controller 内容 什么是Controller Pod和Controller的关系 Deployment控制器应用场景Deployment控制器应用 yaml文件 ...
- <七>深入理解new和delete的原理
new ,delete 运算符 int *p =new int; delete p; 看一下汇编代码 可以看到new 和delete 运算符其实也是 operator运算符重载函数的调用 malloc ...
- Windows10下python3和python2同时安装(一)安装python3和python2
Windows10下python3和python2同时安装(一) 安装python3和python2 特别说明,本文是在Windows64位系统下进行的,32位系统请下载相应版本的安装包,安装方法类似 ...
- Jvm上如何运行其他语言?JSR223规范最详细讲解
一 在Java的平台里,其实是可以执行其他的语言的.包括且不仅限于jvm发展出来的语言. 有的同学可能会说,在java项目里执行其他语言,这不吃饱了撑着么,java体系那么庞大,各种工具一应俱全,放着 ...
- 日爬百万数据的域名限制、url的清洗和管理
一.域名去重1.检测开头:link.startswith('http') txt = "Hello, welcome to my world." x = txt.startswit ...
- 《HTTP权威指南》– 6.代理
代理的概念: Web代理服务器是网络的中间实体.位于客户端和服务器之间,扮演"中间人"的角色,在各端点之间来回传送HTTP报文. 私有和共享代理: 代理服务器可以是某个客户端专用的 ...