python基础(十一、高级变量类型-字典、集合)

13.高级变量类型
5)字典
(1)字典的定义:dictionary(字典)是除列表以外Python之中最灵活的数据类型。字典同样可以用来存储多个数据,通常用于存储描述一个物体的相关信息。
①字典和列表的区别:
(a)列表是有序的对象集合
(b)字典是无序的对象集合
②字典的语法结构:
(a)字典用 {} 定义
(b)字典使用键值对存储数据,键值对之间使用“,”分隔
键key是索引,值value是数据,键和值之间使用“:”分隔。
键必须是唯一的,必须可哈希 -> 不可变类型(字符串、数字或元组);值可以取任何数据类型

(2)字典常用操作
在ipython3中定义一个字典,例如:xiaoming = {}。输入xiaoming.按下TAB键,ipython会提示字典能够使用的函数如下:

①取值:dict[key]、dict.get(key,默认值)
(a)dict[老key],key不存在会报错。

(b)使用get方法取值:dict.get(key,默认值)
key不存在返回None,不会报错

使用get方法取值:键值不存在返回,可以返回默认值

②增加/修改dict[key]、dict.setdefault(key:value)、
(a)增加:dict[新key]=新value,key不存在会报错。
(b)修改:dict[老key]=新value

(c)使用setdefault方法新增,当字典中有该键时,不修改原值。当字典中没有该键时,才能新增

不论是否新增,执行完setdefault方法后,会使用key把value查询出来

setdefault应用:将列表中大于等于66的数字放入字典的key1对应的列表中,将小于66的数据存入key2对应的列表中。
列表:lst = [11, 22, 33, 44, 55, 66, 77, 88]
效果:dic = {"key1": [66, 77, 88], "key2": [11, 22, 33, 44, 55]}
方法1:

方法2:

③删除dict.pop(key)、 dict.popitem()、del、 dict.clear()
(a)dict.pop(key)删除指定键值对

(b)dict.popitem()删除最后一个键值对

(c)del dict[key]

(d)清空字典dict.clear()

④统计键值对数量len(dict)

⑤合并字典dict.update(dict_new)

(3)迭代遍历 for
遍历就是依次从字典中获取所有键值对
①for 循环内部使用的key的变量 in 字典

提示:在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的迭代遍历需求并不是很多

②直接取值:for value in dict.values() (很少用)

③直接取key:for key in dict.keys() (很少用)

④直接取键和值:for key, value in dict.items()

注意:字典迭代遍历时,不能删除列表内容,否则会报错

⑤应用场景
在开发中,大多的应用场景是:
(a)使用多个键值对,存储描述一个物体的相关信息—描述更复杂的数据信息。
(b)再将多个字典放在一个列表中,再进行遍历,在循环体内部针对每一个字典进行相同的处理

(4)词典的嵌套
①字典汪峰

②购物车列表

6)set集合
集合类似字典的存储,但只存放key
集合的存储数据特点:可哈希、不可变、不重复、无序
{}可以表示集合
使用set()创建空集合,使用{}创建的是空字典
作用:可以帮助我们去除重复
(1)添加set.add()

练习:列表去重
方法一:

方法二:

方法三:

方法四(需要保留顺序):

(2)删除set.remove
①set.remove(key):key不存在时会报错

②set.discard(key) :key不存在时不会报错

③set.pop():随机删除数据,很少使用。

(3)取值:迭代遍历for

posted on 2020-11-30 14:46  叮当2000  阅读(143)  评论(0编辑  收藏  举报