python 字典dict - python基础入门(15)
前面的课程讲解了字符串str/列表list/元组tuple,还有最后一种比较重要的数据类型也需要介绍介绍,那就是python字典,俗称:dict.
python中的字典可与字符串/列表/元组不同,因为字典dict需要由两部分组成,分别是key和value,简称:键值对,下面具体讲解一下关于字典的特点:
1.由一个或者多个键值对构成,键值对的类型可以不相同也可以相同;
2.字典中的键值对需要写在{}中括号内部,键值对中的key和value用:隔开,键值对与键值对之间用逗号隔开;
3.字典是一个无序的集合;
4.字典中key具有唯一性;

定义一个字典:
# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:何以解忧
@Blog(个人博客地址): shuopython.com
@WeChat Official Account(微信公众号):猿说python
@Github:www.github.com @File:python_dict.py
@Time:2019/9/27 20:45 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
""" dict1 = dict() # 定义一个空字典
print(dict1)
print(type(dict1)) # 输出字典类型 dict
print(len(dict1)) # 获取字典键值对数量 print("***"*20) # 小窍门:直接打印60 个 *
#字典可以有一个或者多个键值对构成,键值对与键值对之间使用逗号隔开
# "name" / "age" / "sing_gou" 是key
# "隔壁老王" / 42 / True 是value
dict2 = {"name":"隔壁老王", "age":42, "singe_dog":True}
print(dict2)
print(type(dict2)) # 输出字典类型 dict
print(len(dict2)) # 获取字典键值对数量 print("***"*20) # 小窍门:直接打印60 个 *
# 字典中出现了两个一样的key:"age",默认后面的value会覆盖前面的value
dict3 = {"name":"隔壁老王", "age":42, "singe_dog":True,"age":15}
print(dict3)
输出:
{}
<class 'dict'>
0
************************************************************
{'name': '隔壁老王', 'age': 42, 'singe_dog': True}
<class 'dict'>
3
************************************************************
{'name': '隔壁老王', 'age': 15, 'singe_dog': True}
注意:如果字典中出现相同的key值,只有最后一个key/value有效,前面相同的key/value会被覆盖.这就是字典dict所谓的唯一性.
在python开发过程中,对于字典使用最多的莫过于增删改查以及遍历,下面我们一一讲解:
一.字典dict增加数据
如果想要在字典中添加数据,直接赋值就可以,比较简单,跟上示例代码演示一波:
dict1 = dict() # 定义一个空字典
print(dict1) # 输出一个空的字典
dict1["name"] = "猿说python" # 添加键值对 "name":"猿说python" 到 dict1
dict1["url"] = "shuopython.com" # 添加键值对 "url":"shuopython.com" 到 dict1 print(len(dict1)) # 获取字典键值对数量
print(dict1) # 输出整个字典
输出结果:
{}
2
{'name': '猿说python', 'url': 'shuopython.com'}
二.字典dict删除数据
字典是无序的,每个键值对没有对应的索引值,这也是字典与字符串/列表/元祖的区别。删除字典中的数据,需要根据键值对中的key值来删除对应的键值对,删除使用 del 关键字,实例代码如下:
dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典
print(dict1) # 输出删除之前的字典
# 删除key等于"name"对应的键值对
del dict1["name"]
print(dict1)
# 删除key等于"age"对应的键值对
del dict1["age"]
print(dict1)
# 删除key等于"sing_dog"对应的键值对
del dict1["sing_dog"]
print(dict1)
输出结果:
{'name': 'zhangsan', 'age': 38, 'sing_dog': True}
{'age': 38, 'sing_dog': True}
{'sing_dog': True}
{}
三.字典dict修改数据
字典是无序的,每个键值对没有对应的索引值,这也是字典与字符串/列表/元祖的区别。修改字典中的键值对数据,操作和删除数据一样,直接根据键值对中的key值操作即可,实例代码如下:
dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典
print(dict1) # 输出字典
# 修改key等于"name"对应的value
dict1["name"] = "隔壁老王"
print(dict1) # 输出字典
# 修改key等于"age"对应的value
dict1["age"] = 18
print(dict1) # 输出字典
# 修改key等于"sing_dog"对应的value
dict1["sing_dog"] = False
print(dict1) # 输出字典
输出结果:
{'name': 'zhangsan', 'age': 38, 'sing_dog': True}
{'name': '隔壁老王', 'age': 38, 'sing_dog': True}
{'name': '隔壁老王', 'age': 18, 'sing_dog': True}
{'name': '隔壁老王', 'age': 18, 'sing_dog': False}
四.字典dict查询数据
字典是无序的,每个键值对没有对应的索引值,这也是字典与字符串/列表/元祖的区别。查询字典中的键值对数据,操作和删除数据/修改数据一样,直接根据键值对中的key值操作即可,实例代码如下:
dict1 = {"name":"zhangsan","age":38,"sing_dog":True} # 定义一个字典
print(dict1) # 输出字典
# 查询key等于"name"对应的value
print(dict1["name"])
# 查询key等于"age"对应的value
print(dict1["age"])
# 查询key等于"sing_dog"对应的value
print(dict1["sing_dog"])
输出结果:
{'name': 'zhangsan', 'age': 38, 'sing_dog': True}
zhangsan
38
True
五.字典dict常用函数
1.把两个字典合并到一个字典,使用函数update()将一个字典添加到另外一个字典的末尾;
2.清空字典,使用函数clear()清空字典;
示例代码如下:
dict1 = {"name":"zhangsan","age":38} # 定义一个字典
print(dict1) # 输出字典
dict2 = {"sing_dog":True} # 定义一个字典
print(dict2)
print("***"*20) # 小窍门:直接答应60个*
# update()函数:将一个字典添加到另外一个字典的末尾
dict1.update(dict2)
print(dict1) # 输出字典
print("***"*20) # 小窍门:直接答应60个*
# 情况字典dict1
dict1.clear()
print(dict1) # 空字典
# 情况字典dict2
dict2.clear()
print(dict2) # 空字典
输出效果:
{'name': 'zhangsan', 'age': 38}
{'sing_dog': True}
************************************************************
{'name': 'zhangsan', 'age': 38, 'sing_dog': True}
************************************************************
{}
{}
六.字典dict遍历
1.使用dict.items()方法遍历字典,该方法的返回值是一个元组,等价于遍历元组,示例代码如下:
dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典
print(dict1) # 输出字典
print("***"*20) # 小窍门:直接答应60个*
# dict.items()方法,返回元组数据,类似遍历元组操作
for x in dict1.items():
print(x,type(x))
print("***" * 20) # 小窍门:直接答应60个*
# dict.items()方法经典写法,直接获取key/values
for x,y in dict1.items():
print(x,y)
输出结果:
{'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'}
************************************************************
('name', 'zhangsan') <class 'tuple'>
('age', 38) <class 'tuple'>
('sing_dog', True) <class 'tuple'>
('height', '155cm') <class 'tuple'>
************************************************************
name zhangsan
age 38
sing_dog True
height 155cm
2.根据字典中key或者value遍历字典,代码如下:
dict1 = {"name":"zhangsan","age":38,"sing_dog":True,"height":"155cm"} # 定义一个字典
print(dict1) # 输出字典
print("***"*20) # 小窍门:直接答应60个*
# 方法一:根据key值遍历
for key in dict1.keys():
print(key ,dict1[key]) # dict1[key] 等价键值对中key对应的value
print("***"*20) # 小窍门:直接答应60个*
# 方法二:根据value值遍历
for value in dict1.values():
print(value )
输出结果:
{'name': 'zhangsan', 'age': 38, 'sing_dog': True, 'height': '155cm'}
************************************************************
name zhangsan
age 38
sing_dog True
height 155cm
************************************************************
zhangsan
38
True
155cm

七.重点总结
1.注意字典的特点
2.注意字典/字符串/列表/元组的区别
3.注意字典的遍历方式
4.注意字典/字符串/列表/元组之间的相互转换
猜你喜欢:
转载请注明:猿说Python » python 字典dict

python 字典dict - python基础入门(15)的更多相关文章
- python字典dict的增、删、改、查操作
## python字典dict的增.删.改.查操作dict = {'age': 18, 'name': 'jin', 'sex': 'male', }#增# dict['heigh'] = 185 # ...
- Python 字典 dict() 函数
描述 Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. 语法 dict() 函数函数语法: dict(key/value) 参数说明: ...
- 'dict_values' object does not support indexing, Python字典dict中由value查key
Python字典dict中由value查key 众所周知,字典dict最大的好处就是查找或插入的速度极快,并且不想列表list一样,随着key的增加越来越复杂.但是dict需要占用较大的内存空间,换句 ...
- Python 字典dict 集合set
字典dict Python内置字典,通过key-value进行存储,字典是无序的,拓展hash names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75 ...
- Python字典(dict)使用技巧
字典dict是Python中使用频率非常高的数据结构,关于它的使用,也有许多的小技巧,掌握这些小技巧会让你高效地的使用dict,也会让你的代码更简洁. 1.默认值 假设name_for_userid存 ...
- python 字典 dict 该注意的一些操作
在用python处理dict 的时候,有几个该注意的地方,这里跟大家提一下: 1)操作dict 时,尽量少产生新的列表对象.比如: 遍历dict的时候,如果用 dic = {"a" ...
- Python字典 (dict)
作者博文地址:http://www.cnblogs.com/spiritman/ 字典是Python语言中唯一的映射类型.字典对象是可变的,它是一个容器类型,支持异构.任意嵌套. 创建字典 语法:{k ...
- python 字典(dict)按键和值排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行: 1 下面的是按照value的值从大到小的顺序来排序 ...
- python 字典dict和列表list的读取速度问题, range合并
python 字典和列表的读取速度问题 最近在进行基因组数据处理的时候,需要读取较大数据(2.7G)存入字典中,然后对被处理数据进行字典key值的匹配,在被处理文件中每次读取一行进行处理后查找是否在字 ...
随机推荐
- 070_Shell 脚本对信号的处理,执行脚本后,按键盘 Ctrl+C 无法终止的脚本
#!/bin/bash#使用 trap 命令可以拦截用户通过键盘或 kill 命令发送过来的信号#使用 kill -l 可以查看 Linux 系统中所有的信号列表,其中 2 代表 Ctrl+C#tra ...
- grafana 的配置文件,和使用mysql数据库做持久化
grafana 配置文件 vim /etc/grafana/grafana.ini 下面有些参数在新版中6.x版本中已经过时,请参考下面官网最新帮助文档为准 https://grafana.com/d ...
- Vuex学习心得
最近公司项目中使用Vuex做状态管理,就全面温习了一遍文档,然后在项目使用中遇到一些常见问题就一一总结下. 一.由来 我们知道Vue中数据是自顶向下单向流动的,但是以下两种情况单向数据流实现起来十分繁 ...
- [Codeforces1137F]Matches Are Not a Child's Play——LCT+树状数组
题目链接: [Codeforces1137F]Matches Are Not a Child's Play 题目大意: 我们定义一棵树的删除序列为:每一次将树中编号最小的叶子删掉,将该节点编号加入到当 ...
- 我需要关于fixedFluxPressure边界的解释【翻译】
翻译自:CFD-online 帖子地址:http://www.cfd-online.com/Forums/openfoam-solving/82581-i-need-explanations-abou ...
- 《Glibc内存管理》笔记DAY1
目录 x86_64栈和mmap固定映射地址 内存的延迟分配 内核数据结构 mm_struct Heap 操作相关函数 Mmap 映射区域操作相关函数 内容来源 x86_64栈和mmap固定映射地址 ...
- html中的lang标记有什么用
html中的lang标记有什么用 一.总结 一句话总结: 为文档或元素设定主语言(即lang) 比如google浏览器有个自动翻译的功能,而自动翻译要看这个文档的语言 1.其它标签中设置lang属性? ...
- 为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?解决方法如下
为什么ArcGIS 10.3导出 Shapefile的字段名会被截断成3个汉字?低版本中不是至少可以存储4个汉字吗?原因这个问题仍然与编码类型有关.ArcGIS 10.2 以及更早的版本,ArcGIS ...
- [Java]某日期时间加上若干分钟得到新的日期时间
使用Java自带类库实现日期时间增减还是比自己人工拆分编写要牢靠,代码也简洁多了. 下面代码实现了在原有日期时间上加上一些分钟得到新的日期时间的功能,稍加改造还可以实现逆向运算. 代码: packag ...
- P5658 括号树
P5658 括号树 题解 太菜了啥都不会写只能水5分数据 啥都不会写只能翻题解 题解大大我错了 我们手动找一下规律 我们设 w[ i ] 为从根节点到结点 i 对答案的贡献,也就是走到结点 i ,合 ...