有关于dict(字典)的特性与操作方法
有关于dict(字典)的特性与操作方法
1.字典的特性
语法:
dic = {key1 : value1,key2 : value2,key3 : value3............}
注:字典中key的值不可改变,value的值可以改变;由于字典保存数据使用的是Hash存储方式 故字典无法使用切片方式.
2.字典的操作方法
1.增加
dic = {}
1) dic ["name"] = "伍四六"
#如果字典中没有该key值,则在字典最后加入字典元素,如果存在该key值则会覆盖该key值 所对应的value值
2) dic.setdefault(key , default = None)
#使用此方法时,如果字典中没有过这个key则在字典末尾增加这个字典元素,若key已经存 在则此语句无效
##该方法默认的value值为None,可自行设定value值
2.删除
dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}
1) dic.pop(key) #删除指定key值与其指定的value值,并返回value值
注:字典中的pop()与列表中的pop()不同,字典中pop()如果不指定key值会报错,而列表中 pop()不指定索引值是默认删除列表最后一个元素
2) del dic[key] #删除指定key值的字典元素
3) dic.popitem() #随机删除一个字典元素,并返回该字典元素
4) dic.clear() #清除字典中所有的元素
3.修改
dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}
1) 可直接对字典元素的value进行修改
例: dic["姑姑"] = 154
2) dic.update(另一个字典)
#把另一个字典中的内容更新到dic字典中,若key值重复则覆盖其value;若不重复,则新增 字典元素
例:dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
dic.update(dic1)
4.查询
dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}
1) 直接用key去查询
例: print(dic['name']) #得到123
2) dic.get(key) #获取key值的value,如果key不存在,则返回None
5.其他相关操作
dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}
1) dic.keys()
#输出一个可通过list()转化为列表的代码段,代码段中记录了字典中所有的key值;可通过 for循环直接输出
例: for key in dic.keys()
print(key)
2) dic.values()
#输出一个可通过list()转化为列表的代码段,代码段中记录了字典中所有的value值;可通 过for循环直接输出
例: for value in dic.values()
print(value)
3) dic.item()
#输出一个可通过list()转化为列表的代码段,代码段中记录了字典中所有的字典元素,所有 的字典元素装在tuple(元组)中构成列表的每一个元素;可通过for循环直接输出
例:print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age',18),("姑姑",None)] 这个东西也是list. 只不过list中装的是tuple
for key, value in dic.items(): # 这个是解构
print(key, value)
6.解构
1) a,b = 1,2 或 (a,b) = (1,2)这类就属于解构
注:解构时要注意数量必须匹配,否则报错
2) 参数解构
#给函数提供实参的时候,可以在集合类型前使用 * 或者 ** ,把集合类型的结构解开,并提 出所有元素为函数提供实参
##非字典类型使用 * 来解构成位置参数
##字典类型使用 ** 来解构成关键字参数
@@@这里注意提取出来的元素数目要与参数的数目一致,不然会报错
例:
def add(x, y): add(4, 5) #正常调用 add((4,5)) #错误调用被当做一个参数 add( * (4,5)) #参数解构 add( * range(1,3)) #与上类似 add( ** {'a' : 5, 'b' : 6}) #解构value add( * {'a' : 5, 'b' : 6}) #解构key
7.字典的嵌套
dic1 = { "name": "汪峰", "age": 18, "wife": { "name": '章子怡', "age": 28 }, "children": ['第一个毛孩子', '第二个毛孩子'], "desc": '峰哥不会告我吧. 没关系. 我想上头条的' }
print(dic1["wife"] ["name"])
print(dic1.get("wife").get("name"))
print(dic1.get("children"))
print(dic1.get("children") [1])
有关于dict(字典)的特性与操作方法的更多相关文章
- Python的dict字典结构操作方法学习笔记
Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...
- 1.12 dict 字典表
dict 字典表属于映射分类 dict的声明 >>> #dict类型 是 {}中包含若干个键值对 >>> d = dict() >>> d = { ...
- python数据类型之dict(字典)
dict字典 关注公众号"轻松学编程"了解更多. 1.概述 dict也是一种存储方式,类似于list和tuple,但是,字典采用键-值(key-value)的形式存储. 优点:具有 ...
- 数据类型:list列表[]、元祖tuple()、dict字典{}
List 列表[] 可变的 lst = [1,2,3,4] #改 lst[(元素下标)] = '需要修改的' #通过下表修改 lst[下标:下标] = '需要修改的' #通过范围修改 #加 lst.a ...
- Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...
- 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典)--->元组 tuple-->字符串 str
# ### 列表 list 容器类型数据(str字符串, list列表, tuple元组, set集合, dict字典) # (1)定义一个列表 listvar = [] print(listvar, ...
- python的dict()字典数据类型的方法详解以及案例使用
一.之前的回顾 # int 数字 # str 字符串 # list 列表 # tuple 元组 # dict 字典 字典中最重要的方法 keys() values() items() get upd ...
- Python 全栈开发:dict(字典)常用方法操作、dict嵌套
数据类型的划分:可变数据类型和不可变数据类型. 不可变数据类型(可哈希):元祖.bool.int.str 可变数据类型(不可哈希):list.dict,set(集合) dict(字典): dict(字 ...
- [Python] dict字典的浅复制与深复制
Python中针对dict字典有两种复制: (1)浅复制:利用 copy() 或者 dict() :复制后对原dict的内部子对象(方括号[]内元素)进行操作时,由浅复制得到的dict会受该操作影响 ...
随机推荐
- C# 字符串到字节数组,字节数组转整型
; , ); byte[] bytes = BitConverter.GetBytes(num);//将int32转换为字节数组 num = BitConverter.ToInt32(bytes, ) ...
- TP调用JS
echo "<script>alert('删除成功');window.location.href='?c=Banner&a=index' </script>& ...
- Linux如何查看端口(转)
Linux如何查看端口 1.lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000 # lsof -i:8000 COMMAND PID USER ...
- js 弹出div窗口 可移动 可关闭
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- 66.零停机下reindex
主要知识点: 理解reindex的使用场景和必要性 学会reindex 一.理解reindex的使用场景和必要性 假设:在某一个index中依靠dynamic mapping插入数据, ...
- [备忘]git常用命令
网站有点儿久没有维护(因为去做其他事情了呗),现在空下来,回来改了网站的一些东西,却忘记了git的一些常用的命令,于是便写下这篇文,方便查阅,免得每次都去看手册(毕竟我懒啊!!) 检查当前文件状态:g ...
- 洛谷 P1943 LocalMaxima_NOI导刊2009提高(1)
我们先考虑第i大数,比它大的数有(n-i)个,显然要使i是Local Maxima,比它大的数必须放在它后面,那么它是Local Maxima的期望是: 那么n个数中Local Maxima个数的期望 ...
- 洛谷 1373 dp 小a和uim之大逃离 良心题解
洛谷 1373 dp 这题还不算太难,,当初看的时候不是很理解题意,以为他们会选择两条不同的路径,导致整体思路混乱 传送门 其实理解题意和思路之后还是敲了不短的时间,一部分身体原因再加上中午休息不太好 ...
- static 语句块
static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法,下面我们详细的讨论一下该语句块的特性及应用. 一.在程序的一次执行过程中,stati ...
- Grails里DOMAIN类的一对一,一对多,多对多关系总结及集成测试
终于干完这一章节,收获很多啊. 和DJANGO有类似,也有不同. User.groovy: package com.grailsinaction class User { String loginId ...