Python篇:集合与字典

集合

集合(set)是一个无序的不重复元素序列。1,2,3,4,1,2,3 = 1,2,3,4

创建

使用大括号 { } 或者 set() 函数创建集合;
注意:创建一个空集合必须用 set() 而不是 { },{ } 是用来创建一个空字典。

s1 = {}
s2 = {1,2,3}
s3 = {1,2,3,'hello',(1,2,3),[1,2,3]}  	#不能成功定义,集合中不能包含可变的数据类型(list)
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
s4 = set('abracadabra')

集合内置方法

add为集合添加元素
update把一个可迭代对象拆分成个体添加元素

clear移除集合中所有元素
discard删除集合中指定元素(不存在时不会抛出异常)
pop随机移除元素
remove移除指定元素(不存在时抛出异常)

difference返回一个移除当前集合中与指定集合相同元素的新集合(差集)
difference_update在当前集合中移除与指定集合相同元素,没有返回值
intersection返回一个移除当前集合中与指定集合不同元素的新集合(交集)
intersection_update在当前集合中移除与指定集合不同元素,没有返回值
symmetric_difference返回一个移除两个集合中不同元素的新集合(对称差分)
symmetric_difference_update在当前集合中移除与指定集合相同的元素,并将指定集合中当前集合没有的元素插入当前集合,没有返回值
union返回两个集合中所有元素的新集合(并集)
isdisjoint判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
issubset判断当前集合是否为指定集合的子集
issuperset判断当前集合是否为指定集合的父集

注:
a - b ---->a对b求差集
a & b ---->a和b求交集
a | b ---->a和b求并集
a ^ b ---->a和b求对称差分(并集减交集)

集合应用案例

通过集合去重

在这里插入图片描述

字典

字典是另一种可变容器模型,且可存储任意类型对象。
键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

创建

1). 简单字典创建
在这里插入图片描述
2). fromkeys,字典中的key有相同的value值,默认为None
在这里插入图片描述
3). zip间接创建
在这里插入图片描述

内置方法

增(改)

dict[‘key’] = valuekey不存在则增加,存在则更新(更新一个元素)
updatekey不存在则增加,存在则更新(可以指定一个字典,更新多个元素)
setdefaultkey不存在则增加,默认value为None,存在则不做修改

clear清空字典中所有元素
del dict[‘key’]根据key值删除,无返回值
pop()根据key值删除,并返回删除的value值

dict[key]根据key查看
key查看所有的key值
value查看所有的value值
items查看所有的键值对
get指定key存在,返回value值,不存在返回给定的默认值

defaultdict

1). 字典是一种关联容器,每个键都映射到一个单独的值上。如果想让键映射到多个值,需要将这些多个值保存到容器(列表或者集合)中。
2). 利用collections模块中的defaultdict类自动初始化第一个值,这样只需关注添加元素.
在这里插入图片描述

内置数据结构总结

可变数据类型

可以增删改。可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

不可变数据类型

不可以增删改。python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象。

序列

Python包含列表、元组、字符串、集合, 字典等内建的序列。所有序列类型都可以进行某些特定的操作。可以for循环

有序序列

这些操作包括:索引(indexing)、切片(sliceing)、连接操作符(adding)、重复操作符(multiplying)以及成员操作符。

非序列

int, long, float, bool, complex

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值