python教程:dict字典常用方法总结,数据解构(解包)
dict
{'name':'holle'}
字典存储大量关联型数据,可迭代的,最多只有200个键。查询数据速度非常快,符合二分查找(有100个数比如找75会先找到50然后判断,所以2^7次方7次即可找到)字典的key是唯一不可变的。
3.6以前的版本字典是无序的。之后也是无序但显示有序
- key:不可变的数据类型(可哈希) 比如:str bool tuple int 类型
- value:可以是任一数据类型;
增:
#dic['hight'] = 100 通过key强制改,有hight项就会更改,没有就会增加
#dic.setdefault('name','hello') 有则不变,无则增加,setdefault(key) 可通过key查,没有返回None
#formkeys (太坑别用)dict.fromkeys('abc', 'hello'),返回一个新的字典,原字典不变。dit1 = dict3.fromkeys('abc', 'hello')
dit2 = dict3.fromkeys(['a', 'b', 'c'], 'hello')
print(dit1) 输出:{'a': 'hello', 'b': 'hello', 'c': 'hello'}
print(dit2) 输出:{'a': 'hello', 'b': 'hello', 'c': 'hello'}
坑,如果追加其中一个其余value都会改变,因为在内存中这几个是共用一个列表,一变则全都改变。
dit4 = dict3.fromkeys('abc', [])
print(dit4) 输出:{'a': [], 'b': [], 'c': []}
dit4['a'].append('hello')
print(dit4) 输出:{'a': ['hello'], 'b': ['hello'], 'c': ['hello']}
删:
#dic.pop('name') 按key值删除,返回被删除的value。 如果找不到对应的key会报错如果不想报错,添加返回值参数,dic.pop('name','无name时的返回值')。
#dic.clear() 清空字典,只清空字典所有内容
#del dic 在内存中彻底删除字典
#del dic('age') 也可以按key删除,找不到报错
#dic.popitem() 随机删除,返回一个元组 (key, value)
改:
#dic['hight'] = 100 有hight项就会更改,没有就会增加
#update dict2.update(dict1) 将dict1的内容覆盖更新到dict2中,dict1中的内容不变 dict1 = {'name': 'jin', 'age': 18, 'sex': 'male'}
dict2 = {'name': 'alex', 'weight': 75}
dict2.update(dict1)
print(dict2)
输出:{'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
查:
#dic['name'] 直接按key值查 找不到报错
#get() dic.get('name')如果有这个键返回对应的value值,没有这个键会返回None -------用这个dic.get('name','没有此key')也可以设置返回值
#dic.setdefault(key) 有返回value 没有返回None
#for 循环查找 单循环只输出 key的值 dic = {'qwe': 233, 'aaa': 999}
for i in dic: #输出key 的值print(i)
输出:qwe aaa
for k, v in dic.items(): #输出key 和 valueprint(k, v)
输出:
qwe 233
aaa 999
字典的特有的其他操作
for i in dic.keys():print(i) #获取到字典中的每一个键 for i in dic:print(i) #获取到字典中的每一个键for i in dic.values():print(i) #获取到字典中的每一个值for i in dic.items():print(i) #获取到字典中的所有键值对#keys() 返回列表所有的键值key在一个容器中(高仿列表),可以使用for循环遍历,或者list()类型转换变为一个列表。dict2 = {'name': 'alex', 'weight': 75}print(dict2.keys()) 输出:dict_keys(['name', 'weight'])
for i in dict2.keys():print(i) 输出:name weight 类型为字典中的原类型
或者:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dict2 = {'name': 'alex', 'weight': 75}
print(list(dict2.keys()))
输出: ['name', 'weight']#value() 返回所有的value值。dict2 = {'name': 'alex', 'weight': 75}
for i in dict2.values():print(i)
输出:alex 75#items 返回将键值对放在一个个小元组中,dict2 = {'name': 'alex', 'weight': 75}
print(dict2.items())
输出: dict_items([('name', 'alex'), ('weight', 75)])
print(list(dict2.items()))
输出 [('name', 'alex'), ('weight', 75)]
或
for i in dict2.items():
输出:('name', 'alex') ('weight', 75)#len print(dict.len()) 返回键值对的对数
解构(解包)
# a,b = '12' #将后边解构打开按位置赋值给变量 支持 字符串 列表 元组a, b = 1, 2
a, b = '12'
a, b = ['1', 2]
a, b = (1, '2')
print(a, b) 以上所有输出 都是 a==1 b==2
字典的嵌套
找出字典中的18改为19
dic = {'name':'汪峰','age':43,'wife':{'name':'国际章','age':39,'salary':100000},'baby':[{'name':'熊大','age':18},{'name':'熊二','age':15},]
}
dic['baby'][0]['age'] = 19 ----------嵌套的解法与
print(dic)
数据类型分类:
- 不可变的数据类型(可哈希):str,bool,tuple,int
- 可变的数据类型:dict,list,set
- 容器类数据类型:list,tuple,dict,set
python教程:dict字典常用方法总结,数据解构(解包)相关推荐
- Python的dict字典结构操作方法学习笔记
Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...
- Python之dict字典
dict字典 dict字典认知 字典 访问字典里面的成员 如何快速创建一个字典 访问字典成员 dict字典的修改 添加 注意:字典无序 修改字典 删除字典中的数据 未完待续..... dict字典认知 ...
- Lua学习教程之 可变參数数据打包与解包
利用table的pack与unpack进行数据打包与解包.測试代码例如以下: print("Test table.pack()----------------");function ...
- python(dict字典相关知识以及小例子:生成一个列表,存放100个随机整数,找出出现次数最多的数字)
一.什么是字典? #字典的使用 #子字典是一个容器类,可以用来存储数据 #列表存储数据特点:1.有序的 2.每一个都有一个索引,通过索引可以对数据进行查询,修改,删除#字典存储数据: key:valu ...
- Python保存dict字典类型数据到Mysql,并自动创建表与列
主要是工具类,使用pymysql来创建表与SQL 示例代码 import pymysqlclass UseMysql(object):def __init__(self, user, passwd, ...
- Python教程:字典的setdefault() 和get()方法比较
setdefault() 函数 -有key获取值.没key设置 key:default dict.setdefault(key, default=None) 如果 key 在 字典中,返回对应的值. ...
- Python教程:shift函数实现数据偏移的方法
一.背景 当需要统计不同周期的变化情况时,需要使用数据偏移,在 Python 中使用 shift 函数实现. # 一阶差分 diff_num = num - num.shift(1) 二.实现 1.创 ...
- Python元组与字典详解
Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup ...
- python我想对你说_python学习第3天-----字典、解构
1.字典 1)定义:查找速度快,效率高:用{}括起来,内部使用key:value的形式来保存数据:键值对是无序的,不是按照定义的方式保存数据的(类似于json文件), 例如: {'jay':'周杰伦' ...
最新文章
- nginx服务器绑定域名和设置根目录的方法
- 什么意思是谁_舔狗是什么意思?如果不是真的喜欢谁又愿意做舔狗呢出处?
- 读CLR via C#总结(13) 详谈泛型
- CCCC-GPLT L2-019. 悄悄关注 团体程序设计天梯赛
- 49个Python的常见操作/技巧/例子
- AttributeError: ‘_thread._local‘ object has no attribute ‘value‘
- Build/Launch EDKII emulator in Windows and Linux:编译/运行Windows和Linux环境下EDKII模拟器[4]
- 快速部署Redis集群
- 腾讯开放平台实现QQ登录
- 已解决:jdk版本冲突,nested exception is java.lang.UnsupportedClassVersionError:JVMCFRE003
- 重庆交通大学计算机考研资料汇总
- 比python更高级的语言 j_算法X Python实现
- Java篇第三回——运算符、表达式与语句(C不好的也快来)
- 寒假总结 22-1-9
- 面试 | 什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?
- Oculus Rift正式发售,准备好开始迈向VR时代
- 联想小新 100 智能投影仪 评测
- 论文阅读:attention is all you need
- 读书笔记:python+vue实战派
- android stk 卡号切换,[技巧]mpx200如何使用一卡双号或者一卡多号