python数据类型之字典操作
Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
一、创建字典
字典由key和value成对组成。基本语法如下:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":"20"}
也可如此创建字典
- dict1 = { 'abc': 456 }
- dict2 = { 'abc': 123, 98.6: 37 }
注意:
每个key与value用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
key必须独一无二,但value则不必。
value可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
二、访问字典中的值
(1)使用get()方法访问字典中的值,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- print(infos.get("name")) # 打印key为name的value
- print(infos.get("n"))#如果取不到这个key的话,就是None
- #以上运行结果是:
- 谢红
- None
如果取不到key的话,就传入默认值:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- print(infos.get("n", 110)) # 如果取不到这个key的话,默认就是110
- #以上运行结果是:
- 110
(2)直接使用key的值进行获取对应的value,如下:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- print(infos["age"])
- #以上运行结果是:
- 20
三、向字典中增加key
(1)第一种方法,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- infos["phone"]=18888888888 #增加一个key
- print(infos)
- #以上运行结果是:
- {'name': '谢红', 'sex': '女', 'addr': '河南', 'age': '', 'phone': 18888888888}
使用这种方法,如果key存在的话,会修改原来key里面对应的值,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- infos["name"]="袁泉" #如果key存在的话,会修改原来key里面对应的值
- print(infos)
- #以上运行结果是:
- {'name': '袁泉', 'sex': '女', 'addr': '河南', 'age': ''}
(2)使用setdefault()方法增加key,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- infos["phone"]=18888888888 #增加一个key
- infos.setdefault("xiaojinku","2000w") #增加xiaojinku对应的value是2000w
- print(infos)
- #以上运行结果是:
- {'name': '谢红', 'sex': '女', 'addr': '河南', 'age': '', 'phone': 18888888888, 'xiaojinku': '2000w'}
如果增加的key已经存在的话,不会修改原来的值,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- infos.setdefault("name","夏雨")#如果key存在的话,不会修改原来key里面的值
- print(infos)
- #以上运行结果是:
- {'name': '谢红', 'sex': '女', 'addr': '河南', 'age': ''}
四、删除字典中的值
(1)指定key来删除,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- infos.pop("name")# 指定key来删除
- print(infos)
- #以上运行结果是:
- {'sex': '女', 'addr': '河南', 'age': ''}
(2)使用popitem()方法随机删除一个key,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":""}
- infos.popitem()#随机删除一个key
- print(infos)
- #以上运行结果是:
- {'name': '谢红', 'sex': '女', 'addr': '河南'} #结果随机删除了age
(3)使用del 方法指定key进行删除,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":"","phone":""}
- del infos["phone"] #指定key来删除
- print(infos)
- #以上运行结果是:
- {'name': '谢红', 'sex': '女', 'addr': '河南', 'age': ''}
(4)使用clear()方法清空字典,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":"","phone":""}
- infos.clear() #清空字典
- print(infos)
- #以上运行结果是:
- {}
五、字典的其他操作方法
(1)获取字典所有的value,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":"","phone":""}
- print(infos.values())
- #以上运行结果是:
- dict_values(['谢红', '女', '河南', '', ''])
(2)获取到字典所有的key,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":"","phone":""}
- print(infos.keys()) #获取到字典所有的key
- #以上运行结果是:
- dict_keys(['name', 'sex', 'addr', 'age', 'phone'])
(3)获取到字典所有的k -v,例如:
- infos = {"name":"谢红","sex":"女","addr":"河南","age":"","phone":""}
- print(infos.items())# 获取到字典所有的k -v
- #以上运行结果是:
- dict_items([('name', '谢红'), ('sex', '女'), ('addr', '河南'), ('age', ''), ('phone', '')])
(4)多维字典取值的方法,例如在下面实例中如果需要取到“qq”,具体是:
- people = {
- '李雷':{
- 'age':18,
- 'money':200000,
- 'clothes':'100套',
- 'hzp':'n多',
- 'shoes':['nike','addis','lv','chanle']
- },
- '韩梅梅':{
- '金库':'2000w',
- 'house':['三环一套','4环2套'],
- 'cars': {
- 'japan':['普拉多','兰德酷路泽'],
- 'usa':['林肯','凯迪拉克','福特'],
- 'china':['五菱宏光','qq','红旗']
- }
- }
- }
- print(people['韩梅梅']["cars"]["china"][1])
- #以上实例运行结果是:
(5)多维字典增加value,例如给韩梅梅的cars里的usa里增加一辆“牧马人”,如下:
- people = {
- '李雷':{
- 'age':18,
- 'money':200000,
- 'clothes':'100套',
- 'hzp':'n多',
- 'shoes':['nike','addis','lv','chanle']
- },
- '韩梅梅':{
- '金库':'2000w',
- 'house':['三环一套','4环2套'],
- 'cars': {
- 'japan':['普拉多','兰德酷路泽'],
- 'usa':['林肯','凯迪拉克','福特'],
- 'china':['五菱宏光','qq','红旗']
- }
- }
- }
- people["韩梅梅"]["cars"]["usa"].append("牧马人")
- print(people)
- #以上实例运行结果是:
- {'李雷': {'age': 18,
- 'money': 200000,
- 'clothes': '100套',
- 'hzp': 'n多',
- 'shoes': ['nike', 'addis', 'lv', 'chanle']},
- '韩梅梅': {'金库': '2000w',
- 'house': ['三环一套', '4环2套'],
- 'cars': {
- 'japan': ['普拉多', '兰德酷路泽'],
- 'usa': ['林肯', '凯迪拉克', '福特', '牧马人'],
- 'china': ['五菱宏光', 'qq', '红旗']}}}
(6)对字典进行循环,如果直接循环字典的话,那么循环的是字典的key,例如:
- people = {
- '李雷':{
- 'age':18,
- 'money':200000,
- 'clothes':'100套',
- 'hzp':'n多',
- 'shoes':['nike','addis','lv','chanle']
- },
- '韩梅梅':{
- '金库':'2000w',
- 'house':['三环一套','4环2套'],
- 'cars': {
- 'japan':['普拉多','兰德酷路泽'],
- 'usa':['林肯','凯迪拉克','福特'],
- 'china':['五菱宏光','qq','红旗']
- }
- }
- }
- for i in people: #直接循环字典的话,那么循环的是字典的key
- print(i)
- #以上实例运行结果是:
- 李雷
- 韩梅梅 #循环的结果只取到了key,即 李雷 和 韩梅梅
(7)可以用对应的key 和 value进行字典的循环,例如:
- people = {
- '李雷':{
- 'age':18,
- 'money':200000,
- 'clothes':'100套',
- 'hzp':'n多',
- 'shoes':['nike','addis','lv','chanle']
- },
- '韩梅梅':{
- '金库':'2000w',
- 'house':['三环一套','4环2套'],
- 'cars': {
- 'japan':['普拉多','兰德酷路泽'],
- 'usa':['林肯','凯迪拉克','福特'],
- 'china':['五菱宏光','qq','红旗']
- }
- }
- }
- for k,v in people.items():
- print(k,"====>",v)
- #以上实例运行结果是:
- 李雷 ====> {'age': 18, 'money': 200000, 'clothes': '100套', 'hzp': 'n多', 'shoes': ['nike', 'addis', 'lv', 'chanle']}
- 韩梅梅 ====> {'金库': '2000w', 'house': ['三环一套', '4环2套'], 'cars': {'japan': ['普拉多', '兰德酷路泽'], 'usa': ['林肯', '凯迪拉克', '福特'], 'china': ['五菱宏光', 'qq', '红旗']}}
六、将一个字典更新到另一个字典中,使用update()方法,如下:
- a1 = {'姓名':'xiehong','籍贯':'河南',}
- a2 = {'年龄':'保密'}
- a1.update(a2)
- print(a1)
- 结果是:{'姓名': 'xiehong', '籍贯': '河南', '年龄': '保密'}
python数据类型之字典操作的更多相关文章
- python数据类型:字典Dictionary
python数据类型:字典Dictionary 字典是一种可变容器模型,可以存储任意类型对象 键是唯一的,但是值不需要唯一 值可以取任何数据类型,但是键必须是不可变的,如字符串,数字,元组 创建字典: ...
- Python数据类型和数据操作
python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...
- python数据类型之字典
字典定义 字典是一种 key-value 的数据类型,这点很重要,是区别使用列表和字典的依据. 语法格式: info = { 'stu1101': "Aaron", 'stu110 ...
- Python数据类型-6 字典
字典 Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度.但它是无序的,包含的元素个数不限, ...
- [Python Study Notes]字典操作
字典操作 a.增加 >>> info["stu1104"] = "abc" >>> info {'stu1102': 'x5 ...
- Python数据类型(字典和集合)
1.5 Dictionary(字典) 在Python中,字典用放在花括号{}中一系列键-值对表示.键和值之间用冒号分隔,键-值对之间用逗号分隔. 在字典中,你想存储多少个键-值对都可以.每个键都与一个 ...
- python学习之路-3 初始python数据类型以及文件操作
本篇涉及内容 set集合 函数 三元运算 文件操作 set集合 set是一个无序的且不重复的元素集合 1.创建set集合的方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- python 数据类型三 (字典)
一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...
- Python数据类型-04.字典
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据 ------------ 完美的分割线 ------------- 1.字典引入 # 为何还要用字典?存放一个人的信 ...
随机推荐
- Channel 9视频整理【4】
Eric ShangKuan 目前服務於台灣微軟,擔任技術傳教士 (Technical Evangelist) 一職,網路上常用的 ID 為 ericsk,對於各項開發技術如:Web.Mobile.A ...
- C++Review3_关于C++各种概念的串联与梳理
经过前面两个Review,对代码复用,类的继承概念有了进一步理解. 这里再做一次复盘,把其他概念也串联起来构成一个知识框架. 首先是类和对象的概念.对象指的是特征与技能的结合体,面向对象编程思想的好处 ...
- 第三阶段:3.Web端产品设计:5.产品设计-视觉设计
视觉设计主要在表现层. 色彩心理产品经理可以也是应当掌握的.什么颜色的选择都是有理有据的. 信息清晰度. 比如这个图:当用户操作出问题,谷歌会给出问题同时给出解决方法. 视觉动物. 2/8分布原则.用 ...
- HashMap面试题解答
一.HashMap的实现原理? 此题可以组成如下连环炮来问 你看过HashMap源码嘛,知道原理嘛?为什么用数组+链表?hash冲突你还知道哪些解决办法?我用LinkedList代替数组结构可以么?既 ...
- 小白进阶之路-python格式化输出
1.不使用格式化前:传值时比较麻烦而且不精确. 2.格式化输出后,%代表先占个位,s代表字符串,%s代表这里之后会传一个字符串类型的值,%s其实可以接受任意类型的值:%d传入的值要求必须是数字. %s ...
- 【题解】Comet OJ Round 70 简要题解
[题解]Comet OJ Round 70 简要题解 A 将放在地上的书按照从小到大排序后,问题的本质就变成了合并两个序列使得字典序最小.可以直接模拟归并排序.直接用循环和std::merge实现这个 ...
- 爬虫 -- JS调试
开发者工具(F12) 其中常用的有Elements(元素面板).Console(控制台面板).Sources(源代码面板).Network(网络面板) 找 JS 文件的几种方法 1.找发起地址 2.设 ...
- MyBatis原理-延迟加载,一级缓存,二级缓存设置
一.延迟加载 resultMap中的association和collection标签具有延迟加载的功能. 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息.使用关联信息时再去加载关联信息. ...
- 基于 HTML5 WebGL 与 WebVR 3D 虚实现实的可视化培训系统
前言 2019 年 VR, AR, XR, 5G, 工业互联网等名词频繁出现在我们的视野中,信息的分享与虚实的结合已经成为大势所趋,5G 是新一代信息通信技术升级的重要方向,工业互联网是制造业转型升级 ...
- 力扣208——实现 Trie (前缀树)
这道题主要是构造前缀树节点的数据结构,帮助解答问题. 原题 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = ...