字典的定义
定义字典
字典是个啥?
字典由键和对应值成对组成.字典也被称作关联数组或哈希表.
字典是Python语言中唯一的映射类型.
字典以键值对的方式存储数据.字典是一个无序的序列.
字典是python内置的数据结构之一.与列表一样是一个可变序列.
定义一个空字典
那么如何在Python中定义一个空字典呢?
有两种方式
my_dict={}
my_dict=dict()
dict作为Python的关键字和内置函数,因此一般变量名不建议命名为dic
定义有重复Key的字典
来,让我们先尝试一下
my_dict={"彭于晏":99,"彭于晏":66,"杰伦":88,"jj":77}
如上图所示我们知道,有两个Key所对应的都是"彭于晏",让我们来看看输出结果回事什么呢?
(有点小,将就康康)我们不难发现,字典只输出了后面的Key=vaule.
因此我们可以知道,如果有重复元素,那么后一个会把前一个覆盖了,只输出后一个的结果.
从字典中基于Key获取value
既然是字典,那么就应该想拼音对应汉字一样,有着Key对应vaule的关系,那么我们是否可以通过Key去找到对应的vaule,答案是肯定的,让我们看看例子:
my_dict={"彭于晏":99,"杰伦":88,"jj":77}
score=my_dict["彭于晏"]
print(f"彭于晏的考试分数是:{score}")
我们用一个score来接收vaule的值,然后再把它print出来,我们可以得到:
定义嵌套字典
在汉语字典中,我们一个汉字会有很多种意思,那么在Python中,一个Key要对应多个vaule时应该怎么办呢,这时候我们就需要字典的嵌套了.
stu_score_dict={
"彭于晏":{
"语文":99,
"数学":98,
"英语":97,
},"杰伦":{
"语文": 96,
"数学": 95,
"英语": 94,
},"jj":{
"语文": 93,
"数学": 92,
"英语": 91
}
}
print(f"学生的考试信息是:{stu_score_dict}")
如图,我们可以采取这样的写法,更加得直观.
大家可以动手操作一下
不要嫌麻烦,送大家一句我很喜欢的英语名言"Where there is a will,there is a way."
他的中文意思是 "有志者,事竟成."
所以一定要动动手.
从嵌套字典中查询数据
我们已经在刚刚得到一个列表.那如果我们要去查询其中的数据呢.比如,我们要去查询一下彭于晏的语文成绩.应该怎样做呢?
score=stu_score_dict["彭于晏"]["语文"]
print(f"彭于晏的语文分数是:{score}")
score=stu_score_dict[("jj")]["语文"]
print(f"jj的语文分数是:{score}")
其中,最重要的一行:
score=stu_score_dict[("jj")]["语文"]
这个查找就和列表中的索引很相似
字典的基本操作
刚刚讲完了字典的定义,现在又来说说字典的基本操作吧
字典新增元素
例如我们现在先定义一个字典
my_dict={"杰伦":99,"jj":88,"赵旋":66}
现在我们要新增一个元素到列表里面去,
my_dict["程某"]=38
print(f"字典经过新增元素后,结果:{my_dict}")
我们通过 "字典的名称"[新增的元素]=vaule
再print输出一下
可以发现,新元素已经被添加到字典中了.
字典的更替元素
其实更替元素和新增元素很相似,新增是再[ ]中输入添加的元素,而更替就直接输入要更换的元素,
my_dict["程某"]=15
print(f"字典经过更新后,结果:{my_dict}")
就像这样,我就不过多赘述
字典的删除元素
删除元素其实有很多,我这里讲的就是pop函数,具体用法如下:
score=my_dict.pop("程某")
print(f"字典中被移除了一个元素,结果:{my_dict},程某的考试分数是:{score}")
在这里同样需要一个score来接收(一般我喜欢用score,你可以自己定,但是尽量不要和内置函数重复)
字典的清空
说到清空,应该想到的是clear函数
一般是用 .clear( )的形式
my_dict.clear()
print(f"字典被清空了内容是:{my_dict}")
`这个不难记住就好
获取字典全部的Key
我们可以调用一个Keys的函数
my_dict={"杰伦":99,"jj":88,"赵旋":66}
keys=my_dict.keys()
print(f"字典中全部keys是:{keys}")
同上面的
pop.( )比较相似
遍历字典
一般遍历可以用while和for.但是因为字典不支持下标索引,所以不可以用while循环
接下来,我可以给大家介绍两种用for遍历的方法
通过获取全部Key来遍历
my_dict={"杰伦":99,"jj":88,"赵旋":66}
keys=my_dict.keys()
for key in keys:
print(f"字典的key是:{key}")
print(f"字典的value是:{my_dict[key]}")
先获得全部的keys然后将key逐个输出
可能有人不是很理解这个
print(f"字典的value是:{my_dict[key]}")
这个是什么意思呢?可以理解为在字典中查找可以每个key所对应的vaule,因为每个key都输出了嘛.
直接对字典进行for循环每一次循环都直接得到key
for key in my_dict:
print(f"2字典的key是:{key}")
print(f"2字典的value是:{my_dict[key]}")
统计字典中的元素数量
统计总数可以引入我们的len( )函数
num = len(my_dict)
print(f"字典中的元素数量有:{num}个")
这里用num来接收.
总结以及注意事项
1.字典中的key不可以重复,否则会被覆盖掉
2.key,value可以是任意类型,(key不可以是字典)
3.字典不可以进行下标索引
字典可以进行增添,删除,更替,清空,遍历等等操作,理解字典可以就想象成查字典一样,这样就可以更方便理解.