7.1字典的介绍与一般的特征
字典,在python中是一种数据类型,他的存在方式与列表是不一样且看上去较为特殊。
字典使用大括号{},所以看到大括号的数据类型就是字典。字典的元素构成不在是简单的一个值,类似与列表一样[“apple”,“orange“]这样了,而是由两个部分组成。
dic={key1: value1,key2:value}
这里的一个元素由key(键)与value(值)来表示(并且key后面用冒号隔开,然后紧接着是value。)这里可以理解成有点想电话号码表,比如说,小明的电话:多少多少多少,这样子的感觉。举个例子
dic={"小李":125467854313,"小明":2938193848919}
print(dic)
这里key1是小李,那么value1是小李的电话。以此类推即可
当然不仅仅是电话,比如说要做一张调查表,需要你的名字(name),性别(gender),职业(occupation),等等这里也是属于字典的范畴。所以可以看一下(这里是假设哈)
dic={"name":"x", "gender":"male", "occupation":"scientist" }
print(dic)
这个就是基本的字典,接着我们要了解一些字典的特性与关于字典的一些函数与方法。
7.2字典的特性与一些关于字典的方法
7.2.1访问字典
字典中使用了键:值的格式,如果我想调出这个元素的话,这个叫做访问字典,那如何访问呢,这个也是非常简单的。
dic={"name":"x", "gender":"male", "occupation":"scientist" }
print("name:", dic['name'])
在这里print中dic(字典的名字)[你需要的那个键],这样子就能调出你想要的东西。
最后打印出来就是 name:x
如果字典中没有数据的话,那么打印出来将会报错。
dic={"name":"x", "gender":"male", "occupation":"scientist" , "unversity": }
print("name:", dic['unversity'])
VScode本身也会对你这个代码进行报错,会产生红线。
7.2.2字典的特性1:键不能重复性
那么我们知道这么去访问(其实就是调出我们想要的元素),那么做一个合理的假设,字典中有两个一摸一样的键会发生什么样的神奇现象,并且我们使用访问的方法调用一下那个键,会发生什么样的状况。
dic={"name":"x", "gender":"male", "occupation":"scientist" , "favorite":"play games", "name":"Charles"}
print("name:", dic['name'])
接下来运行一下看结果是怎么样的
所以在字典中,如果你使用了两个一样的键的话,使用访问,调出那个数据的时候,总会是后面那个键。
所以并不是使用了两个同样的键就会报错,是使用了同样的键之后,调用起来并不方便,很容易混淆,因为打印出来总是后面的那个值。
所以一般我们并不在字典中使用两个一样的key。
7.2.3字典的合成与改变
7.2.3.1字典的合成
在学习了字典之后,我们知道会有“键:值”,两个部分组成,那么这两个部分能不能由两个列表进行拼凑而成。
这里的答案是肯定的,但是这里需要两个列表,原因不多说了。可以来看一下例子(内容是虚假的哈)
list1 = ['Author', 'age', 'sex']
list2 = ['Charles Wesley', 100000, 'male']
dic1 = dict(zip(list1, list2))
print(dic1)
这里使用了dict()将对应的数据类型改成字典这种数据类型,然后zip在电脑中有数据包这样的含义,在python中有两者一一对应的感觉,第一个对第一个,感觉是将两个打包了一样。所以最后打印出来就是一一对应的一个字典
7.2.3.2字典的改变
7.2.3.2.1字典的修改
字典的修改有点像,变量的二次赋值。可以通过例子来学习
list1 = ['writer', 'age', 'gender']
list2 = ['Charles', 101010101, 'male']
dic = dict(zip(list1, list2))
dic["writer"]="Wesley"
print(dic)
这个打印出来就成了
所以字典的内容就被修改了.
7.2.3.2.2字典的删除
这里介绍的是删除字典中的内容。这里使用的del这个函数
可以看一下例子(很好理解)
list1 = ['writer', 'age', 'gender']
list2 = ['Charles', 101010101, 'male']
dic = dict(zip(list1, list2))
dic["writer"]="Wesley"
del dic["writer"]
print(dic)
这个要注意,并不是只有key或者value被删除了,是这个整体都被删除了,因为这个整体是一个元素。
如果想要删除整个字典的话也非常简单
list1 = ['writer', 'age', 'gender']
list2 = ['Charles', 101010101, 'male']
dic = dict(zip(list1, list2))
dic["writer"]="Wesley"
del dic
print(dic)
这里代表字典已经全部被删掉了。
并且pop函数与popitem这两个也能进行操作
首先介绍一下pop函数
list1 = ['writer', 'age', 'gender']
list2 = ['Charles', 101010101, 'male']
dic = dict(zip(list1, list2))
dic["writer"]="Wesley"
writer=dic.pop("writer")
print(dic)
这里删除了writer这个元素。
然后使用popitem将会删除这个字典中最后的一个元素。
list2 = ['Charles', 101010101, 'male']
dic = dict(zip(list1, list2))
dic["writer"]="Wesley"
ahsnen=dic.popitem()
print(dic)
这里就是删除了整个字典中最后一个元素
7.2.4字典的特性2:key的不可变性
在字典中key的值非常重要,不能重复,不能改变(不能使用一些摸棱两可的数据类型)。可以使用数字,字母等确定的数据类型。