元组&哈希&字典
1、元组
(1)特性:不可变(不能修改、添加、删除),可以做切片
元组本身不可变,如果元组中还包含其他可变元素,这些可变元素可以改变(元组里套用列表,列表中的值可变)
(2)功能:
index
count
切片
(3)使用场景:
显示的告知别人,此处数据不可修改(明确告诉别人不可修改)
数据库连接配置信息等
2、哈希
通过hash的方法就会产生一段唯一的值,但唯一是在一定数据里之内,数据太多了有可能产生不唯一的值(只要用哈希就要解决一个冲突叫哈希冲突)
(1)特征:hash值的计算过程是依据这个值的一些特征计算的,这就要求被hash的值必须固定,因此被hash的值必须是不可变的(可变的类型是不可以被哈希的);
(2)用途:
文件签名
md5加密(md5无法反解)
密码验证
(3)语法:hash('alex')
3、字典(可以套列表)
(1)是一种key - value的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容
语法:info = {
'stu1101':"TengLan Wu",
'stu1102':"XiaoZe",
'stu1103':"LongZe ",
}
注意:key不能重复
info = {
'龙婷’:[24,'design','UI',13535555555]
'姗姗':[25,'PR,'wild model',15532555555]
}
info['龙婷’] #通过输入key值,查找字典内的信息
info['龙婷’][1] = "设计部" #修改字典内数据
(2)特性:
key-value结构
key必须可hash、且必须为不可变数据类型、必须唯一
可存放任意多个值、可修改、可以不唯一
无序
查找速度快
(3)用法:
info = {
'stu1101':"TengLan Wu",
'stu1102':"XiaoZe",
'stu1103':"LongZe ",
}
增加: info["stu1104"] = "Lucy"
修改:info["stu1101"] = "武滕兰"
查找:"stu1102" in info #标准用法 ,返回True
获取:info.get("stu1102")#如果有,返回值,如果没有返回空None
info['shanshan']#如果有,返回值,如果没有报错,一般不用这个
删除:info.pop()
(1)info.pop('shanshan') #删除后返回删除值的信息
(2)info.popitem()#随机删除,没有顺序
(3)del info["stu1102"]
4、多级字典嵌套
info = {'alex':[24,'IT'],'rain':[24,'HR'],'jack':22}
info.keys()#打印所有的key值
结果:dict_keys(['alex','rain','jack'])
info.values()#打印所有的value值
结果:dict_values([24,'IT'],[24,'HR'],22)
info.items()#把字典转换成列表(把key和value变成了一个小元组)
结果:dict_items([('alex',[24,'IT'),('rain',[24,'HR'],('jack',22)])
info.update #把两个字典合并成一个
info.update(dic2)#没有对应的值合并,有对应的覆盖
info.setdefault()#如果原来有对应的值,取出,如果没有就创建后返回
info.fromkeys(['A','B','C'],'alex')#生成字典并批量赋值
结果:{'A':'alex','B':'alex','C':'alex'}
字典的循环
方法一:
for k in info:
#print(k) #打印的是key
print(k,info[k])#打印的是key和value,最常用的循环方法
方法二:(基本不用此方法)
for k,v in info.items(): #先把dict转成list,数据里大时莫用
print(k,v)
元组&哈希&字典的更多相关文章
- python-Day3-set 集合-counter计数器-默认字典(defaultdict) -可命名元组(namedtuple)-有序字典(orderedDict)-双向队列(deque)--Queue单项队列--深浅拷贝---函数参数
上节内容回顾:C语言为什么比起他语言块,因为C 会把代码变异成机器码Pyhton 的 .pyc文件是什么python 把.py文件编译成的.pyc文件是Python的字节码, 字符串本质是 字符数组, ...
- python基础2--数据结构(列表List、元组Tuple、字典Dict)
1.Print函数中文编码问题 print中的编码:# -*- coding: utf-8 -*- 注:此处的#代表的是配置信息 print中的换行符,与C语言相同,为"\n" 2 ...
- Python编程Day6——元组类型、字典类型、集合
一.元组类型(tuple) 1.用途:记录多个值,当多个值没有改变的需求此时元组更为合适 2.定义:在()内用逗号分隔开多个任意类型的值(参数为for可以循环的对象) 3.常用操作: 索引(正取向+反 ...
- Python元组类型、字典类型及常用操作
一.元组类型 1.用途 记录多个值,当多个值没有改的需求,此时用元组更合适,Python的元组与列表类似,不同之处在于元组的元素不能修改. 2.定义方式 在()内用逗号分隔开多个任意类型的值 t=(1 ...
- Redis源码阅读-Dict哈希字典
Dict和Java中的HashMap很相似,都是数组开链法解决冲突. 但是Redis为了高性能, 有很多比较微妙的方法,例如 数组的大小总是2的倍数,初始大小是4. rehash并不是一次就执行完,而 ...
- 9、str类型和byte类型转换、列表拾遗、元组拾遗、字典拾遗、如何判断对象是否可迭代
str(字节类型,编码) 可用于创建字符串,或者将其他的转换成字符串 a= ‘李露’ #将字符串转换成字节流 b = bytes(a,encoding = 'utf-8') #将字节转换成 ...
- 洛谷 P3370 【模板】字符串哈希 (set||map||哈希||字典树(mle)
P3370 [模板]字符串哈希 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. #友情提醒:如果真的想好 ...
- day06python 哈希 字典集合嵌套
1.hash算法 hash算法 :内存中将值进行hash算法得到一个数值存储在内存中,查找也会按照算法进行查找,使用hash算法 执行效率高相对于list的索引查找 (字典,集合):使用的是hash查 ...
- python 元组列表转为字典
#create a list l = [(), (), (), (), (), ()] d = {} for a, b in l: d.setdefault(a, []).append(b) prin ...
随机推荐
- 【补充】第一次个人项目出现的bug
新程序包下载(密码:4kp6) >>>>>直接上代码,问题出在随机分数的生成上,确实出现了一些非常鱼唇的错误,不过已经提交了就没办法了,在这里发出来仅供参考吧: 修改前: ...
- Android 學習之旅!(1)
就這樣就過去了一年加一個學期,現在是大二第二個學期而且是下半學期了,以前都是無所事事,沒事睡睡覺,打打遊戲就過去了,但是想到家境和以後的路,我還是決心自己找點東西學習下,以後出去還能有一技之長(雖然可 ...
- 用户模拟+spec
用户模拟:用户模拟的对象分别为小学二年级学生,学生父亲以及小学教师. 名字 孔小颖 性别 男 职业 小学生 收入 来自父母给予 知识层次和能力 小学二年级 生活/工作情况 在学校上课,数学成绩较差,放 ...
- Cron任务调度CronNET
Cron任务调度CronNET 阅读目录 1.Cron介绍和工具 2.CronNET介绍和使用 3.cron-expression-descriptor使用 4.资源 如果用知乎,可以关注专栏:.NE ...
- org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent succ
数据库 没有开启 连接失败 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause ...
- 【转】CSS颜色代码大全
转自http://www.cnblogs.com/axing/archive/2011/04/09/CSS.html FFFFFF #DDDDDD #AAAAAA #888888 #666666 #4 ...
- PP学习笔记-业务基础
生产主数据.生产计划.生产订单与生产执行 生产模块主要子模块及功能:PP-BD 基本数据管理 PP-SFC车间订单管理 PP-MRP物料需求计划 PP-MPS主生产计划 PP-CRP能力计划 PP-I ...
- hive数据导入Sqoop工具
下载Sqoop ,直接解压缩;然后导入2个环境变量 1.导入oracle数据库中表emp的数据到hive表中 1.导入到HDFS中 $ sqoop import --connect jdbc:mysq ...
- General Test Scenarios
1 all mandatory fields should be validated and indicated by askterisk(*) symbol2 validation error me ...
- Visual Studio 2017各版本安装包离线下载、安装全解析
关于Visual Studio 2017各版本安装包离线下载.更新和安装的方法以及通过已下载版本减少下载量的办法 微软最近发布了正式版Visual Studio 2017并公开了其下载方式,不过由于V ...