pyhon第五章:字典和结构化数据

1.字典数据类型

字典数据类似于列表和元组数据,都是由多个值的集合,但是,字典的数据结构却完全不同

字典的数据结构:

{key1:value1,key2:value2,.........}

字典是由一对大括号包围起来的,里面是多组key和value的键值对,记得之前讲过的另外两种数据类型,列表是由中括号包围,元组是由小括号包围。字典的数据类型和java的json数据结构类似

python自学篇(第五章:字典和结构化数据)

 

结果:b1

列表数据是可以根据下标取值,字典数据是根据key取值,并且key可以是数值型或者是字符串

1.1字典与列表

字典和列表的区别:列表数据是有顺序的,而字典数据是不要求顺序的,所以字典不能像列表一样通过切片的方式去取值。

python自学篇(第五章:字典和结构化数据)

 

结果:False 和 True

 

因为字典的key可以是任意的数据类型,所以更方便我们用来表示数据,比如,我们记录一下一家公司员工的工资条,key就可以用员工姓名,value就是工资数据

比如:

python自学篇(第五章:字典和结构化数据)

 

结果:

python自学篇(第五章:字典和结构化数据)

 

解析:这里spam字典的key是员工姓名,value是工资,循环打印出输入的员工的工资,一旦输入不存在的员工,输出 no people, 如果输入空字符串,就结束程序

知识点:

(1):字典的key值可以任意数据类型,甚至是中文。

(2):while循环,一定要注意避免死循环

(3):条件逻辑判断if语句的使用

(4):not in关键字的使用

(5):try except 异常捕获代码块的使用

1.2 字典数据常用的方法:

主要有:keys(),values(),items()

keys():指字典数据里的所有key

values();指字典数据里的所有value数据

item():指字典数据里的所有key,value键值对

这些方法返回的值是不能够被修改的,没有insert(),append()或者remove()方法

python自学篇(第五章:字典和结构化数据)

 

结果:

python自学篇(第五章:字典和结构化数据)

 

解析:从返回的结果可以看出来,字典本身的值是可以被修改的,甚至可以修改原来值的数据类型,但是通过keys(),values(),items()方法返回的值是不能修改的,他们分别对应的数据类型是dict_keys,dict_values和dict_items,当然也可以通过这三个方法循环迭代出键、值、键/值对。另外注意通过items()返回的数据是包含键值对的元组。

如果想把这些方法返回的值变成真正的列表,可以通过list()进行强制转换

python自学篇(第五章:字典和结构化数据)

 

返回的结果:

python自学篇(第五章:字典和结构化数据)

 

1.3 检查字典中是否存在该值

在上面的例子中已经有过说明了,主要还是对 in和not in关键字的使用

python自学篇(第五章:字典和结构化数据)

 

结果:

python自学篇(第五章:字典和结构化数据)

 

解析:从结果中可以看出来,xx in spam.keys和 xx in spam 的效果是一样的,都是判断是否存在对应的key值。

1.4 get()方法

在很多情况下,循环遍历key值,每次还要判断是否存在key,很麻烦,这时候可以使用字典的get()方法

get()方法里面有两个参数,第一个是要寻找的key,第二个是字典里没有对应的key,默认返回的值

python自学篇(第五章:字典和结构化数据)

 

结果:输入 张三 返回 张三的工资是15000;输入钱六 返回 钱六的工资是0

1.5 setdefalult()方法

setdefalult()方法可以为不存在的key设置默认值,如果该key存在,则返回该key的值

python自学篇(第五章:字典和结构化数据)

 

结果:

python自学篇(第五章:字典和结构化数据)

 

解析:在这两个例子中可以看出,张三存在于字典中,返回了原本的值,钱六不存在字典中,则返回默认设置的值

用这个方法可以做一个非常实用的事情,统计

例子:想要统计一个字符串中各个字符的个数

python自学篇(第五章:字典和结构化数据)

 

结果:

python自学篇(第五章:字典和结构化数据)

posted on 2020-10-22 14:34  Mr.chengJQ  阅读(156)  评论(0编辑  收藏  举报

导航