python 3中的字典|小云越来越好|疫情期间日更(4)

#字典(dictionary)
和汉语中意思差不多,就是查词,解释词。
学习字典要对应列表来学。(列表在上篇内容)

因为列表有很多不方便的地方,列表的下标只能表示数据,因此列表不能表示出关系(比如姓名—学号)。
字典可以解决这个问题。通过字典的一个下标,能够找到与这种除了数据的对应关系。

###字典的下标叫键(key),先说一下字典中的键。
字典中的值都存储在一个特定的键(key)下,键可以是数字,字符串甚至是元组。

###重点 字典中的一个键必须是唯一的
看下面的一个例子:

age={}
age["Bob"]="44"
age["BOb"]="5"
print(tang)

输出结果为:

{'Bob': '44', 'BOb': '5'}

给键赋值了两个Bob 最后输出结果并没有报错,那么这么说键就就不是唯一的了。实际上不是这样的。
字典关心的怎样快速得到信息想要查找的信息,我们得到的是Bob即是44岁,又是5岁,显然是不正确的,说明这当中有两个人都叫Bob,生活中这样的例子太多了。在班里,我们登记成绩即使俩个人都叫Bob,学号也不一样吧。这样才能登记出正确的成绩。回过来看,键必须是唯一的。

###字典中的一个键可以对应多个值,
当然啦,叫tang先生的成绩单上,不是只有一门的成绩

grade={}
grade["tang"]="97","99","87"
print(grade)

输出结果为:

{'tang': ('97', '99', '87')}

##字典是由多个键(key)和其对应的值(value)构成的key-value对组成。key 和 value 中间用冒号隔开,项之间用逗号隔开,整个字典是由大括号{}括起来。

tang={"name":"gang","age":"7"}          

print(tang)          #输出完整的字典
print(tang.keys())   #输出所有键  
print(tang.values())   #输出所有值

输出结果为:

{'name': 'gang', 'age': '7'}
dict_keys(['name', 'age'])
dict_values(['gang', '7'])

看下面的例子。并且打印证明它们是字典类型。

tang={}
a=type(tang)
print(a)

tang2={}
print(type(tang2))

tang3=dict()
print(type(tang3))

输出结果为:

<class 'dict'>
<class 'dict'>
<class 'dict'>

我们发现字典和列表类似,但是字典是用的{},列表用的是[]。

2.现在我来打印字典,看一下字典里面有什么东西

a=dict()
print(a)

输出结果为:

{}

这时发现字典里面是空的。字典可以为空。

###字典是无序的对象的集合(列表是有序的对象的集合)

tang={"name":"唐","age":"13"}
print(tang)

输出结果为:

{ 'age': '13''name''唐'}

由此可见词典输出的顺序和输入的顺序不一致。有一次验证了字典作用是保存了哪些数据。
###从字典中取值

tang={"name":"唐","age":"13"}
print(tang["name"])

输出的结果是:

###在字典中增加一个键 —值对

tang={"name":"唐"}
tang["age"]=13
print(tang)

输出结果:

{'name': '唐', 'age': 13}

###在字典中修改一个键 —值对**

tang={"name":"唐"}
tang["name"]="刚刚"
print(tang)

输出结果为:

{'name': '刚刚'}

由此可知,如果key存在就是修改键—值对,如果key不存在就是增加键—值对。
###在字典中删除一个键 —值对**

tang={"name":"唐","age":13}
tang.pop("name")
print(tang)

输出结果为:

{'age': 13}

###统计键值对的数量

tang={"name":"唐","age":13}
print(len(tang))

输出结果为:2

###合并键值对

a={"name":"yun"}
b={"age":"13"}
a.update(b)
print(a)

输出结果为:

{'name': 'yun', 'age': '13'}

值得注意的是a.update(b)的方式并没有返回一个新的字典,而是对a进行了更新。此时的返回值是None.

a={"name":"yun"}
b={"age":"13"}
c=a.update(b)
print(c)

输出结果为:

None

###清空字典

a={"name":"yun"}
a.clear()
print(a)

输出结果为:

{}

值得注意的是清除字典和合并字典一样,并没有形成一个新的字典,而是对原有字典的清除,此时的返回值是None.这里我就不验证了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章