Chapter08 python基础——集合

一、集合set

(一)简介

集合是可变的容器

集合内的数据对象都是唯一的(不能重复多次的)

集合是无序的存储结构,集合内的数据没有先后顺序关系

集合内的元素必须是不可变对象

集合是可迭代对象

集合是相当于只有键没有值的字典(键则是集合的数据)

(二)创建集合

创建空的集合:

set()          #不能用{}来创建空集合,此方法已被用于字典

创建非空集合:

s = {1,2,3,4}

(三)集合的构造函数set

set()  创建一个空的集合对象(不能用{}来创建空集合)

set(iterable)  用可迭代对象创建一个新的集合对象

示例:

s = set()

s = set(“ABC”)                         # s = {‘A’,’B’,’C’}

s = set({1:’1’,2:’2’,3:’3’})                # s = {1,2,3}

(四)集合的运算:

交集,并集,补集,子集,超集   

运算符:&   |    -    ^   <    <=   >   >=   ==   !=

&交集

|并集

-补集:s1-s2    #生成属于s1但不属于s2的所有元素的集合

^对称补集:s1^s2  #(s1-s2)|(s2-s1)

>判断一个集合是另一个集合的超集

<判断一个集合是另一个集合的子集

(五)in / not in 运算符

in 等同于字典的in, 用于集合中,当某个值存在于集合中,返回True,否则返回False

not in 与 in 返回值相反

集合的 in / not in 运算符的速度快于序列

(六)能用于集合的函数:

len(x)

max(x)

min(x)

sum(x)

any(x)

all(x)

集合是可迭代对象

(七)集合的方法:见文档

(八)集合推导式:

集合推导式是用可迭代对象生成集合的表达式

语法:{表达式 for 变量 in 可迭代对象 [if 真值表达式],}

注:[]内的内容可省略

示例:

numbers = (1,2,3,2,2,3,3,4,5)

s = {x for x in numbers}                 #去除重复的元素

(九)固定集合 frozenset

(1)固定集合是不可变的,无序的

(2)固定集合可以作为字典的键,还可以作为集合的值

(3)创建空的固定集合

fs = frozenset()

(4)创建非空的固定集合:

frozenset(iterable)   用可迭代的对象创建新的固定集合

示例:fz = frozenset([2,3,5,7])            #frozenset({2,3,5,7})

(5)运算:

&交集

|并集

-补集

^对称补集

in /not in 运算

<  <=  >  >=  ==  !=

(以上运算与set的运算完全相同)

(6)固定集合的方法:

相当于集合的全部方法去掉修改集合的方法

(十)列表,字典,集合对象优缺点:

(1)都为可变

(2)列表的尾部插入速度比较快,查中间插入和头插数据速度慢

(3)列表有序

(4)字典添加,删除,修改速度快于列表

(5)集合的添加,删除快于列表,且不能存储重复元素

猜你喜欢

转载自blog.csdn.net/weixin_42353109/article/details/80568961
今日推荐