一 字典

定义:dict, 以{},表示.每一项用逗号隔开,内部元素用key:value的形式来保存数据.例如

{"jj":"林俊杰","jay':周杰伦"}

特点:查询效率非常高,通过key来查找元素

内部使用key来计算一个内存地址(暂时),hash算法,key必须不可变的数据类型(key必须是可hash的数据类型)可hash就是不可变

已知的可hash数据:int str tuple bool

不可hash的类型:list dist set

语法 dict={key1:value1,key2;value2....}

注意;key必须是不可hash的(不可变的),value没有要求(可以保存任意的数据)

dict保存的数据不是按照我们添加进去的顺序保存的. 是按照hash表的顺序保存的. ⽽而hash表
       不是连续的. 所以不能进⾏行行切片⼯工作. 它只能通过key来获取dict中的数据

二 新增

dic={}
dic["徐峥"]="人在囧途" #如果dict中没没有key,就会新增一个key:value的组合进去
dic["黄渤"]="疯狂的石头"
dic["王宝强"]="天下无贼"
dic["王宝强"]="士兵突击" #如果key已经存在.那么会替换掉原来的value
dic.setdefault("黄丘生")
dic.setdefault("黄丘生","无间道")# 如果key存在了 不会执行新增
print(dic)

三 删除

dic = {"黄日华": "天龙八部", "吕颂贤": "笑傲江湖", "苏有朋": "倚天屠记"}
# #dic.pop("吕颂贤") #指定删除
# dic.popitem()#随即删除
# dic.clear() # 清空字典
# print(dic)

四 修改

dic = {"刘能": "王小利", "赵四": "刘晓光", "王木生": "范伟", "谢大脚": "于月仙", "李大国": "小鬼"}
dic['王木生'] = "刘伟"
# print(dic) 替换
dic2 = {"刘能": "大阳哥", "赵四": "github", "王木生": "汪峰", "谢大脚": "冯提莫", "王大拿": "金老板"}
dic.update(dic2) #相同的换掉,不一样的加上去
print(dic)

五 查询

 dic={"刘能":"大阳哥","赵四":"github","王木生":"汪峰"}
# #1.最直观,直接用key
# print(dic["刘能"])#当这个key不存在时会报错
# # # 2.get
# print(dic.get("谢大脚",))##没有key返回none
# # #3.
# #setdefault(先新增 看看有没有key,如果有就过,没有执行新增 @根据key把值返回
dic={}
dic["盖伦"]="德玛西亚之力"
value = dic.setdefault("feiaona", "无双剑姬")  # 新增
value2 = dic.setdefault("盖伦", "刘伟")  # 由于已经存在了key。 所以新增不执行。 直接查询结果
value3 = dic.setdefault("薇恩", "坑")
print(dic)

相关操作

主要是遍历字典

=相关操作
dic = {"汪峰": "大陆音乐半壁江山", "周杰伦": "亚洲音乐天王", "罗志祥": "亚洲舞王"}
#print(dic.values()) #得到 dict_keys(['汪峰', '周杰伦', '罗志祥']) 像列表但不是列表 可以当列表来看(来用)#通过这种方法对字典的遍历一个个都拿出来
#第一种方法:
# for key in dic.keys():
#     print(key) # 得到 key
#     print(dic[key]) #得到value     daic[key]表示value#上边是对key的遍历
#对value的遍历# print(dic.values())
# for value in dic.values():
#    print(value)# 只能拿出value不能拿出key 也就这样了#既然拿到key,拿到value
#能不能一对一对拿#亦可以遍历字典
# print(dic.items())  #items每一项 ; 拿到value和拿出key
# for item in dic.items():
#     print(item) #拿到元组类型的
#     print(item[0],item[1]) #拿到key和value
#
# a,b=10,20 #结构\解包 元组列表都有
# print(a)
# print(b)#这个也可以遍历字典
#
# print(dic.items())  # 拿到的是key和value
for k, v in dic.items(): # 当需要遍历字典. 在操作中涉及到key和value的时候.print(k) # 元组print(v)# 字典本身是一个可迭代对象,可以直接进行for循环
for el in dic:  # 直接拿到keyprint(el)print(dic[el])

六 字典的嵌套

给个例子

wf = {"name": "汪峰","age": 48,"成名曲": "春天里","wife": {"name": "章子怡","age": 39,"工作": "演员"},"children":[{"num": "001", "name": "汪一", "hobby": "唱歌"},{"num": "002", "name": "汪二", "hobby": "演戏"} # wf['children'][1]['name']]
}# wf['wife']['age'] = wf['wife']['age'] + 10
# print(wf)

转载于:https://www.cnblogs.com/systemsystem/p/9606067.html

python.day05相关推荐

  1. python爬虫实战-爬取视频网站下载视频至本地(selenium)

    #python爬虫实战-爬取视频网站下载视频至本地(selenium) import requests from lxml import etree import json from selenium ...

  2. 铁乐学Python_day05-字典dict

    1.[字典dict] Python内置了字典:dict的支持,dict全称dictionary, 在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 字典和列表直观上 ...

  3. Python基础day05 作业解析【10道 函数作业题】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[函数(定义与调用.文档说明.传参函数.全局变量.返回值.嵌套调用)] ...

  4. Python基础day05【函数应用:学生管理系统、拆包、今日总结】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  5. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  6. Python菜鸟入门:day05列表

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  7. 轩小陌的Python笔记-day05 数据类型

    day05 数据类型(上) 接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 d ...

  8. 廖雪峰Python教程 实战day05

    廖雪峰Python教程 实战day05 1. Web程序工作流程 本文部分文字内容.图片摘自<Flask Web开发实战:入门.进阶与原理解析>,作者李辉. 在编写自己的Web框架之前,首 ...

  9. Python 在线多人游戏开发教程 Day05#石头剪刀布游戏

    Python 在线多人游戏开发教程 Day01#做一个可以移动的方块 Python 在线多人游戏开发教程 Day02#做一个server 和 network Python 在线多人游戏开发教程 Day ...

最新文章

  1. SIGIR|乘风破浪的AI华人学者们
  2. 华农软件工程实验报告_华南农业大学15年软件工程复习提纲
  3. 实现一个队列类,该类用两个栈来实现
  4. python作业6月14日
  5. 判断整除(opj)(动态规划)
  6. windows进程管理器_任务管理器就能搞定9成的电脑问题?方法在这里!
  7. OpenShift 4 - 下载OpenShift项目中的ImageStream
  8. [leetcode]70. 爬楼梯
  9. C#中文件与文件夹相关的操作
  10. java静态引用_Java开发中静态方法引用和实例方法引用案例详细讲解
  11. 0.05‱的人生赢家!我们昨天仰视的学霸,今天又成了千亿富豪!
  12. visio 取消跨线
  13. 电子报刊制作软件之比较
  14. CreateDC与CreateCompatibleDC建立的HDC有何不同?
  15. JS + Echarts实现中国地图 China.js
  16. -bash: /usr/local/soft/jdk1.8.0_321/bin/java: 无法执行二进制文件
  17. 学机械 计算机,机械设计制造专业
  18. 基于Matlab的MIMO通信系统仿真_Simulink实现
  19. 如何使用uTorrent制作自己的种子
  20. java转换时间格式 yyyy-MM-dd转成yyyy年MM月dd日

热门文章

  1. 伸缩轨道_深度解析——伸缩喷漆房为什么这么受欢迎!
  2. 链式存储mysql_链栈:栈的链式存储结构
  3. 通过地址访问 mysql_MySql通过ip地址进行访问的方法
  4. c语言怎么样文件存储数据,急求如何将下列C语言程序数据存储到文件中?
  5. linux 进程的执行时间,Linux 获取进程执行时间
  6. python cnn识别图像_笨方法学习CNN图像识别(一)—— 图片预处理
  7. BOMbing The System
  8. 靶场练习第十二天~vulnhub靶场之dc-4
  9. 通过查看__cplusplus的值查看编译器的C++标准
  10. 【设计模式之美】<Reading Notes>抽象类与接口