字典(dict),增删改查,嵌套
一丶字典
dict 用{}来表示 键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
值 没有任何限制
二丶字典的增删改查
1.增
dic[key] = value
dic.setdefault(key,value)
如果键在字典中存在,则不进行任何操作,否则就添加,可以通过key查询,没有这个key则返回None
# 增
dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000}
dic["sex"] = "女" #增加,如果key重复了,会替换掉原来的value
print(dic)
dic.setdefault("hobby","listen music")
print(dic)

2.删
pop(key) 有返回值,返回的是被删除的value
del dic[key]
popitem 随机删除
clear() 清空字典
# 删
dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000}
ret = dic.pop("money") #有返回值,返回的是被删除的value
print(dic) #{'name': '周杰伦', 'age': 45, 'sex': 'boy'}
print(ret) #被删除的值
del dic["sex"] #{'name': '周杰伦', 'age': 45, 'money': 100000}
print(dic)
dic.popitem() #随机删除
print(dic) #{'name': '周杰伦', 'age': 45, 'sex': 'boy'}
dic.clear() #全部清空 {}
print(dic)
3.改
dic[key] = value
dic.update(字典)
#改
dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000}
dic["age"] = "" #强制修改值
print(dic) #{'name': '周杰伦', 'age': '40', 'sex': 'boy', 'money': 100000}
dic1 = {"name":"李晨","bug":"唯一一个","age":38}
dic2 = {"name":"范冰冰","邓超":"玛丽","age":26}
dic2.update(dic1) #把dic1中的内容更新到dic2中,如果存在了key,则替换,如果不存在,则添加进去
print(dic1)
print(dic2)
4.查
get(key)
dic[key]
for 循环
setdefault(key)
1#查
dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000}
print(dic.get("sex")) #boy
print(dic["age"]) #
for a in dic: #for 循环默认是获取字典中的键(key)
print(a)
print(dic[a]) #获取的是字典中的值(value)
ret = dic.setdefault("name","谢文东") #首先判断原来的字典中有没有这个key,如果没有,执行新增
print(dic) #用这个key去字典中查询,返回查找到的结果
print(ret)
三丶字典的其它操作
keys 获取到所有的键存在一个高仿的列表中
values 获取到所有的值存在一个高仿的列表中
items 获取到所有的键值对,以元组的形式存在一个高仿的列表中
dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000}
print(dic.keys()) #获取到所有的键存在一个高仿的列表中
##dict_keys(['name', 'age', 'sex', 'money'])
print(dic.values()) #获取到所有的值存在一个高仿的列表中
##dict_values(['周杰伦', 45, 'boy', 100000])
print(dic.items()) #获取到所有的键值对,以元组的形式存在一个高仿的列表中
##dict_items([('name', '周杰伦'), ('age', 45), ('sex', 'boy'), ('money', 100000)])
四丶字典的嵌套
# 字典的嵌套
dic1 = {
"name":"汪峰",
"age":48,
"sex":"男",
"wife":{
"name":"章子怡",
"age":36,
"sex":"女",
},
"baby":[
{"name":"熊大","age":18},
{"name":"熊二","age":16}
]
}
print(dic1)
dic1["baby"][1]["age"] = 14
print(dic1)

字典(dict),增删改查,嵌套的更多相关文章
- python 字典dict 增删改查操作
初始化: a. data_dict = {} b. data_dict1 = dict() c. data_dict2 = {'key':'value'} 新增: a. data_dict[key]= ...
- DAY5(PYTHON) 字典的增删改查和dict嵌套
一.字典的增删改查 dic={'name':'hui','age':17,'weight':168} dict1={'height':180,'sex':'b','class':3,'age':16} ...
- 2018.8.1 python中字典的增删改查及其它操作
一.字典的简单介绍 1.dict 用{}来表示 键值对数据 {key:value} 唯一性 2.键都必须是可哈希,不可变的数据类型就可以当做字典中的键 值没有任何限制 ...
- python字典的增删改查
字典dict 知识点: {}括起来,以键值对形式存储的容器性数据类型: 键-必须是不可变数据类型,且是唯一的: -值可以是任意数据类型.对象. 优点:关联性强,查询速度快. 缺点:以空间换时间. 字典 ...
- 列表(索引切片 增删改查 嵌套) range 元组的初识
li = ["alex", "WuSir", "ritian", "barry", "wenzhou" ...
- python 字典使用——增删改查
创建字典 dict= {key1 : value1, key2 : value2 } key : value 为键值对 增: dict[key] = value 删: del dict[key] 改: ...
- 字典的增删改查 daty 5
字典:python中非常重要的数据类型,在python中唯一一个映射的数据类型数据类型分类 按照数据可变与不可变: # 不可变数据类型: int str bool tuple # 可变数据类型: li ...
- day6 note 字典的增删改查(以及setdefault用法补充)
今天的内容主要是join的用法和字典的用法,由于已经有前面的列表作为基础,所以还比较简单,不过因为昨天的作业比较难也比较多,所以作业的讲解占用的时间比较长.我需要好好消化一下作业的部分. 思维导图: ...
- dict 增删改查
# dict # 数据类型划分: 可变数据类型,不可变数据类型 # 不可变数据类型: 元组 bool int str set (又被称为可哈希) # 可变数据类型: list dict (又被称为不可 ...
随机推荐
- AtCoder Regular Contest 074 E:RGB Sequence
题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_c 题目翻译 给你一行\(n\)个格子,你需要给每个格子填红绿蓝三色之一,并且同时满足\(m\ ...
- 微信小程序再次升级:卖货小店小程序不用开发也能进行交易
卖货小店小程序,不用开发一行代码也能帮商家实现交易功能,这个真是几家欢喜几家愁啊,对于开发小程序商城的公司来说,这个无疑是一个雷霆之际,第一反应就是,这下完了,小程序自身就支持交易,那还要我们这些第三 ...
- Oracle的case 用法
1.测试表declare @stuinfo table(id int, sname nvarchar(20), ///小组名称 gender varchar(1), //小组性别 sgroup int ...
- LWIP的底层结构(物理层)
LWIP的底层结构(物理层) 转自:http://bluefish.blog.51cto.com/214870/158418 我们前面讲到说是ip层的发送和接收都是直接调用了底层,也就是设备驱动层的函 ...
- GridSplitter用法
1.GridSplitter的ShowsPreview设置为True时拖动报null错误 解决方法在Grid外面包装一个装饰器:AdornerDecorator,至于为什么这么做,暂时还不知道 2.当 ...
- xgene:之illumina,,ion-torrent
illumina技术: 工具:flowcell(流动池):8通道,每个通道都有 2种DNA引物 种在玻璃表面(用共价键连到Flowcell上),这引物和文库中的接头互补 Flowcell:8个l ...
- malloc,alloc,realloc之间的相似与区别
三个函数的申明分别是: void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(si ...
- MVC4 @helper辅助方法
Razor提供了一种很方便的语法,可以将view页面中部分内容或部分代码抽取出来,变成一个独立的辅助方法. eg1: @foreach(var item in Model){ <标签tr&g ...
- redis win连接以及配置连接密码
redis连接格式为 redis-cli -h host -p port -a password 但由于刚安装的redis是没有密码的 因此可以进行直接连接, cd转到redis目录里 redis-c ...
- 原生js 的ajax封装
/** * 封装ajax函数(包括跨域) * @method ajax * @param option :{type:"post" or "get" 请求方式, ...