python学习(4)字典

字典的关键字是dict

字典的特性:

1.字典是无序的 (数据大的时候,每次输出是不一样的)

2.字典是key-value的形式来存储的 (键值对:冒号隔开,冒号前面的叫键key,冒号后面的叫值value)

获取所有的key:

for..in 变量.keys()       (加s)

获取所有的value:

for .. in 变量.values()      (加s)

获取所有的对:

for .. in 变量.items()        (加s)

 

items()输 出的结果是上面这样,不是字典格式(键值对),所以输出的时候要像这样:加引号↓

 

字典元素的删除:

del 变量[键]

 

 

 

字典元素的新增:

变量[键]=值

 

 

获取某个value的值:

变量.get(键)     ——方法1
变量[键]         ——方法2 (建议使用)

 

 

两个字典追加:

字典1.update(字典2)

相当于list里面的extend()。

  (给字典1添加字典2,把字典2追加到字典1中,2没有变)

 

√实现字典的有序:

方式1:sorted()

方式2:从collections中导入OrderedDict类

方式1:字典排序

sorted(字典的对,key)

排序规则:

1.如果是数字,默认是从小到大

2.如果是字符串,内部处理的思路是把字符串转为数字,然后和1的规则一样

3.如果是多个字符串,比如aa,ab,那么这个时候它的规则是:

A、aa和ab先比较第一个字符串,发现第一个相同,就比较第二个

B、比较第二个,比如是字符串转为数字,规则与1相同

4.把字符串转为数字,使用的内部函数是ord()

5.排序比较必须是相同的数据类型(如果不同:有数字和字符串比较,就给数字带引号转成字符串类型)

(1)把字典的对放入lambda函数,以第一位排序:(也就是以字典的key排序,索引为0)

(注:sorted函数中传入源数据dict1.item(),就是字典所有的项,key是sorted函数中的参数 表示以什么做为排序,key参数中用了lambda表达式  表示输入的数据取索引为0的,也就是字典的键。输出的结果是列表类型,强制转换为dict类型)

例:

 

 (2)把字典的对放入lambda函数,以第二位排序:(也就是value排序,索引为1)

 例:

 

 方式2:从collections中导入OrderedDict类

导入OrderedDict类,对类进行实例化,字典dict1就是类实例化的对象,这时它就是一个有顺序的字典,现在编辑字典都是有顺序的,最后强制转换类型。

 

复杂结构获取数据:

先看清楚序列的结构,列表中获取元素是用索引,字典中获取值是用键。

dict1={"status":0,"msg":"ok","datas":
  [
  {"company":"华为","职位":"测试开发工程师"},
  {"company":"腾讯云","职位":"Go开发工程师"},
  {"company":"易点天下","职位":"Java开发工程师"}
  ]}
View Code

 

 

 

 

获取多个字典中相同的键对应的值,所有放到一个新的列表里:

例1:取出以下数据中的所有职位:

 

 

例1解释:

           

 定义一个空列表,for in 输出字典dict1的“datas”键对应的值(也就是item,如左图),append :把这些字典中"职位"对应的值   加到空列表里。

 

 例2:

 

 

 

posted @ 2022-03-28 16:33  jia---  阅读(154)  评论(0)    收藏  举报