[Python]! ! !2023 超详细 ! ! !字典的定义以及操作

字典的定义

定义字典

字典是个啥?

字典由键和对应值成对组成.字典也被称作关联数组或哈希表.

字典是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.字典不可以进行下标索引

字典可以进行增添,删除,更替,清空,遍历等等操作,理解字典可以就想象成查字典一样,这样就可以更方便理解.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值