Python学习笔记(Task06:字典与集合)

字典与集合

字典

字典是另一种可变容器模型,且可存储任意类型对象。和之前的字典一样,存放key-value键值对。
每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

在这里插入图片描述
注意

  • 键必须是唯一的,但值则不必。不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
    在这里插入图片描述
  • 值可以取任何数据类型,但键必须是不可变对象,为了保证Hash算法的正确性。如字符串,数字或元组。而 list 是可变的,不能作为 key。
    在这里插入图片描述

访问字典里的值

把相应的键放入到方括号中,如下实例:
在这里插入图片描述
如果用字典里没有的键访问数据,会输出错误。

避免key不存在的错误

有两种方法:
1、通过 in 判断是否存在。
在这里插入图片描述
2、通过 dict 的内置函数 get() ,不存在则返回None,或自己指定值。
在这里插入图片描述

修改字典

添加键值对:除了初始化时添加,还可以通过 key 来添加,这与C#不太一样,需要注意。
在这里插入图片描述
更新和删除键值对:直接通过键来修改和删除,删除时用 del 语句。
在这里插入图片描述
清空字典:用字典的内置方法 clear() 。
在这里插入图片描述
del 也可删除整个字典:
在这里插入图片描述

字典内置函数&方法

内置函数:
  1. len(dict) 计算字典元素个数,即键的总数。
  2. str(dict) 输出字典,以可打印的字符串表示。
  3. type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
内置方法:
  1. radiansdict.clear() 删除字典内所有元素.。
  2. radiansdict.copy() 返回一个字典的浅复制。
  3. radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值。
  4. radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值。
  5. key in dict 如果键在字典dict里返回true,否则返回false。
  6. radiansdict.items() 以列表返回可遍历的(键, 值) 元组数组。
  7. radiansdict.keys() 返回一个迭代器,可以使用 list() 来转换为列表。
  8. radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default。
  9. radiansdict.update(dict2) 把字典dict2的键/值对更新到dict里。
  10. radiansdict.values() 返回一个迭代器,可以使用 list() 来转换为列表 。
  11. pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
  12. popitem() 随机返回并删除字典中的最后一对键和值。

集合

集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,…}
或者
set(value)

创建一个 set 需要提供一个 list 作为输入集合(会去掉重复元素):
在这里插入图片描述

集合的基本操作

添加元素

用 add(x) 方法。将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
在这里插入图片描述
还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

x 可以有多个,用逗号分开。
在这里插入图片描述

移除元素

用 remove() 方法。将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
在这里插入图片描述
此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )

在这里插入图片描述
我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop()

在这里插入图片描述
set 可看做数学意义上的无序和无重复元素的集合,因此可以做交集、并集等操作。在这里插入图片描述

清空集合

用 clear() 方法。
在这里插入图片描述

集合内置方法

  1. add() 为集合添加元素。
  2. clear() 移除集合中的所有元素。
  3. copy() 拷贝一个集合。
  4. difference() 返回多个集合的差集。
  5. difference_update() 移除集合中的元素,该元素在指定的集合也存在。
  6. discard() 删除集合中指定的元素。
  7. intersection() 返回集合的交集。
  8. intersection_update() 返回集合的交集。
  9. isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
  10. issubset() 判断指定集合是否为该方法参数集合的子集。
  11. issuperset() 判断该方法的参数集合是否为指定集合的子集。
  12. pop() 随机移除元素。
  13. remove() 移除指定元素。
  14. symmetric_difference() 返回两个集合中不重复的元素集合。
  15. symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
  16. union() 返回两个集合的并集。
  17. update() 给集合添加元素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值