Python基础----集合

在这里插入图片描述
集合的描述

集合是可变的容器

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

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

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

集合是可迭代对象

集合相当于只有键没有值的字典(键是集合的数据)
a = dir(set)
print ('set常用的方法:')
for i in a:
    if i[0] != '_':
        print (i)
        
set常用的方法:
add
clear
copy
difference
difference_update
discard
intersection
intersection_update
isdisjoint
issubset
issuperset
pop
remove
symmetric_difference
symmetric_difference_update
union
update

1、集合的创建,set()、copy()

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

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

a = {}
print (type(a))
a = set()
print (type(a))
<class 'dict'>
<class 'set'>
set1 = set('difference')
print (set1)
{'e', 'i', 'c', 'n', 'd', 'r', 'f'}
set1 = set('difference')
set2 = set1.copy()
print (set2)
print (id(set1),'\n',id(set2))
{'f', 'r', 'n', 'e', 'i', 'd', 'c'}
1626263774824 
 1626263775496

2、集合元素的增加add、update

add()一次增加一个元素

set1 = {1,3,5,7}
set1.add(4)
print (set1)
{1, 3, 4, 5, 7}

set.update(),用一个集合来更新另一个集合元素

set1 = {1,3,5,7}
set2 = {1,5,6,8}
set1.update(set2)
print (set1)
{1, 3, 5, 6, 7, 8}

3、集合的删除pop、remove、discard、clear

pop()

Remove and return an arbitrary set element.
Raises KeyError if the set is empty
set1 = {1,3,5,7}
set1.pop()
print (set1)
{3, 5, 7}

remove(),去掉set中的一个元素,如果没有这个元素会报错

set1 = {1,3,5,7}
set1.remove(5)
print (set1)
set1.remove(5)

{1, 3, 7}



---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-31-bd9daa361cf2> in <module>()
      2 set1.remove(5)
      3 print (set1)
----> 4 set1.remove(5)


KeyError: 5

discard(),移除不存在的元素不会报错

set1 = {1,3,5,7}
set1.discard(5)
print (set1)
set1.discard(5)

{1, 3, 7}

clear(),清空set

set1 = {1,3,5,7}
set1.clear()
print (set1)
set()

4、集合的运算

A、B的并集,A.union(B),A|B
A、B的交集,A.intersection(B),A&B
A相对与B的差补,A.difference(B),A-B,在A中不在B中的元素组成的集合
A、B的对称差集,A.symmetric_difference(B),A^B,(A-B)|(B-A)

集合关系判断

A是B的子集,A.issubset(B),A<=B
A是B的子集,A<B
A是B的超集,A.isssuperset(B),A>=B
A是B的超集,A>B
A与B是否有交集,A.isdisjoint(B)
A与B是否相同,== 、!= 
判断集合中是否有某元素,in /not in,与列表和字典类似

update

A.difference_update(B)相当于A = A-B
A.intersection_update(B)相当于A = A&B
A.symmetric_difference_update(B)相当于A = (A-B)|(B-A)
A = {1,2,3}
B = {3,4}
print (A|B)
print (A.union(B))
print ('-*'*10)
print (A&B)
print (A.intersection(B))
print ('-*'*10)
print (A-B)
print (A.difference(B))
print ('-*'*10)
print (A^B)
print (A.symmetric_difference(B))
print ('-*'*10)
print (A.issubset(B))
print (A.issuperset(B))
print (A.isdisjoint(B))
print (A == B)
print (A != B)
print (1 in A)
print ('-*'*10)
A.difference_update(B)
print (A)
A = {1,2,3}
A.intersection_update(B)
print (A)
A = {1,2,3}
A.symmetric_difference_update(B)
print (A)
{1, 2, 3, 4}
{1, 2, 3, 4}
-*-*-*-*-*-*-*-*-*-*
{3}
{3}
-*-*-*-*-*-*-*-*-*-*
{1, 2}
{1, 2}
-*-*-*-*-*-*-*-*-*-*
{1, 2, 4}
{1, 2, 4}
-*-*-*-*-*-*-*-*-*-*
False
False
False
False
True
True
-*-*-*-*-*-*-*-*-*-*
{1, 2}
{3}
{1, 2, 4}

5、集合常用函数

        len(x)     返回集合的长度
        max(x)    返回集合的最大值元素
        min(x)     返回集合的最小值元素
        sum(x)     返回集合中所有的元素的和
A = {1,2,3}
print (len(A))
print (max(A))
print (sum(A))
3
3
6

6、固定集合的构造函数 frozenset

    frozenset()                 创建一个空的固定集合
    frozenset(interable)  用可迭代对象创建一个新的固定集合
    相当于集合的全部方法去掉修改集合的方法

猜你喜欢

转载自blog.csdn.net/weixin_42432468/article/details/88565080