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字典常用方法总结,数据解构(解包)相关推荐

  1. Python的dict字典结构操作方法学习笔记

    Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...

  2. Python之dict字典

    dict字典 dict字典认知 字典 访问字典里面的成员 如何快速创建一个字典 访问字典成员 dict字典的修改 添加 注意:字典无序 修改字典 删除字典中的数据 未完待续..... dict字典认知 ...

  3. Lua学习教程之 可变參数数据打包与解包

    利用table的pack与unpack进行数据打包与解包.測试代码例如以下: print("Test table.pack()----------------");function ...

  4. python(dict字典相关知识以及小例子:生成一个列表,存放100个随机整数,找出出现次数最多的数字)

    一.什么是字典? #字典的使用 #子字典是一个容器类,可以用来存储数据 #列表存储数据特点:1.有序的 2.每一个都有一个索引,通过索引可以对数据进行查询,修改,删除#字典存储数据: key:valu ...

  5. Python保存dict字典类型数据到Mysql,并自动创建表与列

    主要是工具类,使用pymysql来创建表与SQL 示例代码 import pymysqlclass UseMysql(object):def __init__(self, user, passwd, ...

  6. Python教程:字典的setdefault() 和get()方法比较

    setdefault() 函数 -有key获取值.没key设置 key:default dict.setdefault(key, default=None) 如果 key 在 字典中,返回对应的值. ...

  7. Python教程:shift函数实现数据偏移的方法

    一.背景 当需要统计不同周期的变化情况时,需要使用数据偏移,在 Python 中使用 shift 函数实现. # 一阶差分 diff_num = num - num.shift(1) 二.实现 1.创 ...

  8. Python元组与字典详解

    Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup ...

  9. python我想对你说_python学习第3天-----字典、解构

    1.字典 1)定义:查找速度快,效率高:用{}括起来,内部使用key:value的形式来保存数据:键值对是无序的,不是按照定义的方式保存数据的(类似于json文件), 例如: {'jay':'周杰伦' ...

最新文章

  1. nginx服务器绑定域名和设置根目录的方法
  2. 什么意思是谁_舔狗是什么意思?如果不是真的喜欢谁又愿意做舔狗呢出处?
  3. 读CLR via C#总结(13) 详谈泛型
  4. CCCC-GPLT L2-019. 悄悄关注 团体程序设计天梯赛
  5. 49个Python的常见操作/技巧/例子
  6. AttributeError: ‘_thread._local‘ object has no attribute ‘value‘
  7. Build/Launch EDKII emulator in Windows and Linux:编译/运行Windows和Linux环境下EDKII模拟器[4]
  8. 快速部署Redis集群
  9. 腾讯开放平台实现QQ登录
  10. 已解决:jdk版本冲突,nested exception is java.lang.UnsupportedClassVersionError:JVMCFRE003
  11. 重庆交通大学计算机考研资料汇总
  12. 比python更高级的语言 j_算法X Python实现
  13. Java篇第三回——运算符、表达式与语句(C不好的也快来)
  14. 寒假总结 22-1-9
  15. 面试 | 什么是内部类?成员内部类、静态内部类、局部内部类和匿名内部类的区别及作用?
  16. Oculus Rift正式发售,准备好开始迈向VR时代
  17. 联想小新 100 智能投影仪 评测
  18. 论文阅读:attention is all you need
  19. 读书笔记:python+vue实战派
  20. android stk 卡号切换,[技巧]mpx200如何使用一卡双号或者一卡多号

热门文章

  1. resx文件在X64位编译,提示“未能加载文件或程序集”的问题?
  2. 微软Exchange Server 2013 CU11更新已发布
  3. StoreFront 登陆页面的话持续时间
  4. java管理从程序员到CTO的Java技术路线图
  5. 几个简单的shell脚本
  6. oracle Fusion Applications 的架构
  7. java 调用 wsdl形式的webservice 示例
  8. 退回余款退回银行会计分录
  9. CSS问题的撰写准则
  10. Excel表格复制到word中