Python基础---集合set{}


一、概述


'''无序的可修改的序列'''

集合与之前列表、元组类似,可以存储多个数据,但是这些数据是不重复的(具有自动去重功能)。

集合对象还支持交集(intersection),差集(difference)、并集和对称差集(sysmmetric_difference),即关系测试。

(集合的基本功能包括关系测试和消除重复元素)

集合定义:

 变量名={元素1,元素2,元素3,...}

  元素不能为可变数据类型

 变量名=set(可迭代内容) 例如 变量名=set(元组,自动,字符串)

 可迭代内容:列表,字符串,元组,字典


二、集合的操作


1.创建集合

(1)按照集合的格式直接创建

  注意:True会转换成1,False会转换成0,集合的最大作用就是去重复,默认去掉后边重复的

set1={'a',True,1,(1,2,3),0,False}#{0, True, 'a', (1, 2, 3)}
print(set1)
print(type(set1))
{0, 'a', True, (1, 2, 3)}
<class 'set'>

(2)用列表以及set函数生成集合

lst=[1,2]
set2=set(lst)
print(set2)
{1, 2}

(3)用字符串以及set函数生成集合

str1='hello'
set3=set(str1)
print(set3)
{'l', 'e', 'h', 'o'}

(4)用元组以及set函数生成集合

tup=(1,3,4)
set5=set(tup)
print(set5)
{1, 3, 4}

(5)用字典以及set函数生成集合

    {'a', 'b'},字典只会输出key值

dic={'a':13,'b':18}
set6=set(dic)
print(set6)
{'a', 'b'}

(6)创建空集合

set2=set()
print(set2)
print(type(set2))
set()
<class 'set'>

2.增加操作

(1)利用add方法添加

set1.add('舞')
print(set1)
{0, True, (1, 2, 3), 'a', '舞'}

(2)利用update方法添加

set_1={'舞','aa'}
set1.update(set_1)
print(set1)
{0, True, (1, 2, 3), 'a', '舞', 'aa'}

3.删除操作

(1)利用pop方法随机删除集合中的一个元素

set1.pop()
print(set1)
{True, (1, 2, 3), 'a', '舞', 'aa'}

(2)利用remove方法指定删除集合中的元素

set1.remove('a')
print(set1)
{True, (1, 2, 3), '舞', 'aa'}

(3)利用clear方法清空集合中的元素成为一个空集合set()

set1.clear()
print(set1)
set()

(4)利用del直接从内存中删除集合

   输出会报错

del set1
print(set1)

4.遍历集合

for i in set1:
    print(i)
True
(1, 2, 3)
舞
aa

三、关系测试


1.交集(&或intersection,取公共部分)

se={1,2,3,4}
se1={3,4,5,6}
print(se&se1)
print(se.intersection(se1))
{3, 4}
{3, 4}

2.反交集(^或symmetric_difference,取非公共部分)

print(se^se1)
print(se.symmetric_difference(se1))
{1, 2, 5, 6}
{1, 2, 5, 6}

3.并集(|或union,获取两集合全部内容,自动去重)

print(se|se1)
print(se.union(se1))
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}

4.差集(-或difference,取set1或set2除去set1与set2的公共部分)

print(se-se1)
print(se.difference(se1))
print(se1-se)
print(se1.difference(se))
{1, 2}
{5, 6}

5.子集(<或issubset,set1<set2,set1为set2的子集)

se2={1,2}
se3={1,2,3}
print(se2<se3)
print(se2.issubset(se3))
True

6.超集(>或issuperset,set2>set1,set2为set1的超集)

print(se3>se2)
print(se3.issuperset(se2))

猜你喜欢

转载自blog.csdn.net/weixin_44239385/article/details/85487394
今日推荐