元组&字典
Posted mrhb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了元组&字典相关的知识,希望对你有一定的参考价值。
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)
以上是关于元组&字典的主要内容,如果未能解决你的问题,请参考以下文章