Python之集合类型set(集合的特性及常用方法等)

2021-01-25 10:29:53 浏览数 (2)

参考链接: Python Set isdisjoint()

一、集合的创建 

1. 集合(set)里面的元素是不可重复的 

s = {1,2,3,1,2,3,4,5}

print(s)

print(type(s)) 

2. 空集合的创建 

s1 = set([])    #空集合

print(type(s1)) 

错误创建方法: 

s1 = {}

print(type(s1))     #字典类型 

练习:将列表中的重复元素去除 

li = [1,2,3,1,2,3]      #将列表转化为集合,去掉重复的项,再将集合转化为列表

print(list(set(li))) 

二、集合的特性 

集合只支持成员操作符 、for循环(迭代)和枚举 

1. 成员操作符 

s = {1,2,3}

print(1 in s)

print(1 not in s) 

2. for循环(迭代) 

s = {1,2,3}

for i in s:

    print(i) 

3. 枚举 

s = {1,2,3}

for i,v in enumerate(s):

    print('index:%s,value:%s' %(i,v)) 

三、集合常用方法 

集合:无序的数据类型 ,添加顺序和在集合中的存储顺序是不一样的 

1. 添加单个元素 

s = {6,7,8,9}

s.add(1)

s.add(10)

print(s) 

2. 添加多个元素 

s = {6,7,8,9}

s.update({5,2,3})

print(s) 

3. 删除指定元素 

s = {6,7,8,9}

print(s)

s.remove(9)     #删除指定元素

print(s) 

4. 交集 

s1 = {1,2,3}

s2 = {2,3,4}

print('交集:',s1.intersection(s2))

print('交集:',s1 & s2) 

5. 并集 

s1 = {1,2,3}

s2 = {2,3,4}

print('并集:',s1.union(s2))

print('并集:',s1 | s2) 

6. 差集 

s1 = {1,2,3}

s2 = {2,3,4}

print('差集:',s1.difference(s2))      #s1-(s1&s2)

print('差集:',s2.difference(s1))      #s2-(s1&s2) 

7. 其他 

s3 = {1,2,3,4,5,6}

s4 = {1,2,3}

print(s3.issuperset(s4))    #s3是否是s4的超集(父集)

print(s4.issubset(s3))      #s4是否是s3的子集

print(s3.isdisjoint(s4))    #s3与s4是否不相交(不相交为true,相交为false) 

练习:菲波纳契数列 

li = [1,1]

tmp,num = 1,1

rep = 20

for i in range(rep -2):

    tmp,num = num, tmp num

    li.append(num)

print(li)

0 人点赞