python.day05
一 字典
定义: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相关推荐
- python爬虫实战-爬取视频网站下载视频至本地(selenium)
#python爬虫实战-爬取视频网站下载视频至本地(selenium) import requests from lxml import etree import json from selenium ...
- 铁乐学Python_day05-字典dict
1.[字典dict] Python内置了字典:dict的支持,dict全称dictionary, 在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. 字典和列表直观上 ...
- Python基础day05 作业解析【10道 函数作业题】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[函数(定义与调用.文档说明.传参函数.全局变量.返回值.嵌套调用)] ...
- Python基础day05【函数应用:学生管理系统、拆包、今日总结】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...
- Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...
- Python菜鸟入门:day05列表
写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...
- 轩小陌的Python笔记-day05 数据类型
day05 数据类型(上) 接下来的3篇的内容都是讲解数据类型的知识点,常见的数据类型: int,整数类型(整型) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 d ...
- 廖雪峰Python教程 实战day05
廖雪峰Python教程 实战day05 1. Web程序工作流程 本文部分文字内容.图片摘自<Flask Web开发实战:入门.进阶与原理解析>,作者李辉. 在编写自己的Web框架之前,首 ...
- Python 在线多人游戏开发教程 Day05#石头剪刀布游戏
Python 在线多人游戏开发教程 Day01#做一个可以移动的方块 Python 在线多人游戏开发教程 Day02#做一个server 和 network Python 在线多人游戏开发教程 Day ...
最新文章
- SIGIR|乘风破浪的AI华人学者们
- 华农软件工程实验报告_华南农业大学15年软件工程复习提纲
- 实现一个队列类,该类用两个栈来实现
- python作业6月14日
- 判断整除(opj)(动态规划)
- windows进程管理器_任务管理器就能搞定9成的电脑问题?方法在这里!
- OpenShift 4 - 下载OpenShift项目中的ImageStream
- [leetcode]70. 爬楼梯
- C#中文件与文件夹相关的操作
- java静态引用_Java开发中静态方法引用和实例方法引用案例详细讲解
- 0.05‱的人生赢家!我们昨天仰视的学霸,今天又成了千亿富豪!
- visio 取消跨线
- 电子报刊制作软件之比较
- CreateDC与CreateCompatibleDC建立的HDC有何不同?
- JS + Echarts实现中国地图 China.js
- -bash: /usr/local/soft/jdk1.8.0_321/bin/java: 无法执行二进制文件
- 学机械 计算机,机械设计制造专业
- 基于Matlab的MIMO通信系统仿真_Simulink实现
- 如何使用uTorrent制作自己的种子
- java转换时间格式 yyyy-MM-dd转成yyyy年MM月dd日
热门文章
- 伸缩轨道_深度解析——伸缩喷漆房为什么这么受欢迎!
- 链式存储mysql_链栈:栈的链式存储结构
- 通过地址访问 mysql_MySql通过ip地址进行访问的方法
- c语言怎么样文件存储数据,急求如何将下列C语言程序数据存储到文件中?
- linux 进程的执行时间,Linux 获取进程执行时间
- python cnn识别图像_笨方法学习CNN图像识别(一)—— 图片预处理
- BOMbing The System
- 靶场练习第十二天~vulnhub靶场之dc-4
- 通过查看__cplusplus的值查看编译器的C++标准
- 【设计模式之美】<Reading Notes>抽象类与接口