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]) #以上实例运行结果是:
qq

(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数据类型之字典操作的更多相关文章

  1. python数据类型:字典Dictionary

    python数据类型:字典Dictionary 字典是一种可变容器模型,可以存储任意类型对象 键是唯一的,但是值不需要唯一 值可以取任何数据类型,但是键必须是不可变的,如字符串,数字,元组 创建字典: ...

  2. Python数据类型和数据操作

    python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...

  3. python数据类型之字典

    字典定义 字典是一种 key-value 的数据类型,这点很重要,是区别使用列表和字典的依据. 语法格式: info = { 'stu1101': "Aaron", 'stu110 ...

  4. Python数据类型-6 字典

    字典 Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度.但它是无序的,包含的元素个数不限, ...

  5. [Python Study Notes]字典操作

    字典操作 a.增加 >>> info["stu1104"] = "abc" >>> info {'stu1102': 'x5 ...

  6. Python数据类型(字典和集合)

    1.5 Dictionary(字典) 在Python中,字典用放在花括号{}中一系列键-值对表示.键和值之间用冒号分隔,键-值对之间用逗号分隔. 在字典中,你想存储多少个键-值对都可以.每个键都与一个 ...

  7. python学习之路-3 初始python数据类型以及文件操作

    本篇涉及内容 set集合 函数 三元运算 文件操作 set集合 set是一个无序的且不重复的元素集合 1.创建set集合的方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  8. python 数据类型三 (字典)

    一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...

  9. Python数据类型-04.字典

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据 ------------ 完美的分割线 ------------- 1.字典引入 # 为何还要用字典?存放一个人的信 ...

随机推荐

  1. JSON 文件的存取

    import json data = {'Tom': {'Weight:': 65, 'Score': 90, 'Height': 170}} # json.dumps 将字典转化为 JSON 编码的 ...

  2. 一文带你了解 OAuth2 协议与 Spring Security OAuth2 集成!

    OAuth 2.0 允许第三方应用程序访问受限的HTTP资源的授权协议,像平常大家使用Github.Google账号来登陆其他系统时使用的就是 OAuth 2.0 授权框架,下图就是使用Github账 ...

  3. 集合排序Comparable和Comparator有什么区别?

    Comparable和Comparator兄弟俩长得是真像.但是,需要注意下,使用中它们还是有不少区别的.下面,就一探究竟吧. 一.Comparator 做过集合排序的童鞋应该知道,可以使用Colle ...

  4. 1065 单身狗 (25分)C语言

    单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数:随 ...

  5. 谁再问elasticsearch集群Red怎么办?把这篇笔记给他

    前言 可能你经历过这些Red. ...等等 那ES的Red是神么意思? 这里说的red,是指es集群的状态,一共有三种,green.red.yellow.具体含义: 冷静分析 从上图可知,集群red是 ...

  6. linux条件变量使用和与信号量的区别

    近来在项目中用到条件变量和信号量做同步时,这一块一直都有了解,但也一直没有总结,这次总结一下,给大家提供点参考,也给自己留点纪念. 首先,关于信号量和条件变量的概念可以自行查看APUE,我这直接把AP ...

  7. 迷你PS小程序-集成的开放式画报、油墨电子签名、图片拖拽可单独食用

    米娜桑,哦哈哟~ 个人制作,该文章主要讲解最近基于uni-app框架编写的集图文拖拽等多方位编辑.油墨电子签名.开放式海报于一体的小程序的制作思路和实现代码. 目录 1.完整源码链接 2.实现思路 3 ...

  8. C++乱码从入门到放弃

    前几天在一篇文章中看见一段用大括号包裹的C++代码(大概长下面这样) { //一些必要的预处理代码...吧啦吧啦吧啦... int main() { //代码主体...吧啦吧啦吧啦... } } 当时 ...

  9. 微信小程序----日期时间选择器(自定义精确到分秒或时段)

    声明 bug:由于此篇博客是在bindcolumnchange事件中做的值的改变处理,因此会出现当你选择时,没有点击确定,直接取消返回后,会发现选择框的值依然改变.造成原因:这一点就是由于在bindc ...

  10. Office系列(1)---将Office文件(Word、PPT、Excel)转换为PDF文件

    需求: 将Office文件作为文章并在网页上预览,主要为(Word.PPT.Excel)3种类型文件. 研究了一下,找到了两种解决方案 直接调用微软的在线预览功能实现(预览前提:预览资源必须可以直接通 ...