Python学习 :集合

2020-01-19 11:15:20 浏览数 (1)

集合 Set

集合的创建

集合的创建只有一种方式

集合中的元素必须是不可变的数据类型

集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选

代码语言:javascript复制
s=set('xiaoming')
s1=['alex','mike','alex','mary']
s2=set(s1)
print(s)
print(s2)
>>>{'a','g','m','x','o','n','i'}
>>>{'mike','alex'}
# 集合的重要特点:去重,重复元素只会显示一次
s3=list(s)
# 重新把集合转变为列表
print(s3)
>>>['mike','alex']

集合的分类:可变集合、不可变集合

可变集合(set):可添加和删除元素,不能作为字典的键

不可变集合(frozenset):与可变集合相反

集合的相关操作

代码语言:javascript复制
s = set('xiaoming')
s1 = ['alex','mike','alex','mary']
s = set(s1)

1)add
s.add('john')
print(s)
>>>{'alex', 'mary', 'mike', 'john'}

2)update
s.update('john')
print(s)
>>>{'alex','n','h','mike','o','j'}
s.update(['john','damon'])#使用一个课迭代的容器list来把元素加入集合中
print(s)
>>>{'alex','mike','john'}

3)pop
s.pop()#pop不能指定删除某个特定的元素,每次只会删除一个参数
print(s)
>>>{'mike','alex'}

4)remove
s.remove('mike')#remove可以删除指定元素
print(s)
>>>{'mary', 'alex'}

5)clear
s.clear()#清空集合
print(s)
>>>set()

6)del#删除集合

集合类型操作符

代码语言:javascript复制
1)in,not in

2)集合等价(==)与不等价(!=)

3)子集、超集
父集、超集(>)
a=set([1,2,3,4])
b=set([4,5,6,7])
print(a.issuperset(b)) # a 是否完全包含 b
>>> False
子集(<) # a 是否属于 b
print(a.issubset(b))
>>> False

4)联合即并集符号(|)
联合(union)操作与集合的or操作是等价的,取两个集合中所有的元素print(a.union(b))
# print(a|b)
>>>{1,2,3,4,5,6,7}

5)交集(&)
print(a.intersection(b))
# print(a&b)
>>>{4}

6)差集(-)
print(a.difference(b))#inabutnotinb
# print(a-b)
>>>{1,2,3}

7)对称差集(^)
print(a.symmetric_difference(b))
# print(a^b)
>>>{1,2,3,5,6,7}

0 人点赞