Python基础学习08--集合

集合—set

是一个无序的不重复的元素序列。

集合的特征

  • 集合内数据无序,即无法使用索引和分片
  • 集合内部数据元素具有唯一性,可以用来排除重复数据
  • 集合内的数据,str, int, float, tuple,冰冻集合等,即内部只能放置可哈希数据

创建集合

# 创建空集合
set1 = set()
print('set1的数据类型为:',type(set1))

# 创建存在数据的集合
set2 = {1}
print('set2的数据类型为:',type(set2))
print('set2 :',set2)

# 创建多数据的集合
set3 = {1,'1',1,2,3,1}        # 集合中存在3个 1
print('set3的数据类型为:',type(set3))
print('set3 :',set3)

输出结果如下:

set1的数据类型为: <class 'set'>

set2的数据类型为: <class 'set'>
set2 : {1}

set3的数据类型为: <class 'set'>
set3 : {'1', 1, 2, 3}

# 从结果可以看出,集合中只保留1个 1
# 感兴趣的可以多次执行,会发现set是随机保留 1 个重复数据

集合的常用方法

1、add()

    添加元素到集合中,如果元素已存在,则不进行任何操作。

set4 = {1,2,3,4}
print('set4-前 :',set4)

set4.add(1)     # 添加set4中已有元素
print('set4-后 :',set4)

set4.add(0)     # 添加set4中没有的元素
print('set4-后 :',set4)
set4-前 : {1, 2, 3, 4}
set4
-后 : {1, 2, 3, 4} set4-后 : {1, 2, 3, 4, 5}

2、update()

    添加元素,且参数可以是列表,元组,字典等

set4 = {1,2,3,4}
print('set4-前 :',set4)

set4.update({0:'5'})
print('set4-后-dict :',set4)

set4.update([-1,5])
print('set4-后-list :',set4)
set4-前 : {1, 2, 3, 4}
set4-后-dict : {0, 1, 2, 3, 4}
set4-后-list : {0, 1, 2, 3, 4, 5, -1}

3、remove()

    移除元素,如果元素不存在,则会发生错误

4、discard()

    移除元素,如果元素不存在,不会发生错误

5、pop()

    随机移除一个元素

set4 = {1,2,3,4,5}
print('set4-前 :',set4)

set4.remove(3)       # 移除元素 3
print('set4-后-remove :',set4)

set4.discard(1)      # 移除元素 3
print('set4-后-discard :',set4)

set4.pop()           # 随机移除某元素
print('set4-后-pop :',set4)

set4.discard(1)     # 移除集合中不存在的元素 1
print('set4-discard-后 :',set4)

set4.remove(1)       # 移除集合中不存在的元素 1
print('set4-remove-后 :',set4)
set4-前 : {1, 2, 3, 4, 5}

set4-后-remove : {1, 2, 4, 5}
set4-后-discard : {2, 4, 5}
set4-后-pop : {4, 5}

set4-discard-后 : {4, 5}

KeyError: 1    # remove方法,移除set中不存在的元素,会报错

6、intersection()

    两个集合的交集

7、difference()

    两个集合的差集

8、union()

    两个集合的并集

9、issubset()

    检查检查一个集合是否为另一个子集

set5 = {1,2,3,4,5,6}
set6 = {5,6,7,8,9}

s1 = set5.intersection(set6)    # set5 ∩ set6
print('set5 ∩ set6 =',s1)

s2 = set5.difference(set6)      # set5 - set6
print('set5 - set6 =',s2)

s3 = set5.union(set6)           # set5 ∪ set6
print('set5 ∪ set6 =',s3)

s4 = set5.issubset(set6)        # set5 是 set6的子集
print('set5 ⊆ set6 ',s4)
set5 ∩ set6 = {5, 6}

set5 - set6 = {1, 2, 3, 4}

set5 ∪ set6 = {1, 2, 3, 4, 5, 6, 7, 8, 9}

set5 ⊆ set6  False

集合的数学操作

set5 = {1,2,3,4,5,6}
set6 = {5,6,7,8,9}

s1 = set5 - set6
s2 = set6 - set5
s3 = set5 + set6
print('set5 :',set5) print('set6 :',set6) print('set5 - set6 :',s1) print('set6 - set5 :',s2)
set5 : {1, 2, 3, 4, 5, 6}
set6 : {5, 6, 7, 8, 9}

set5 - set6 : {1, 2, 3, 4}

set6 - set5 : {8, 9, 7}
# 从结果中可以看出,集合相减。是指减去集合的交集部分

TypeError: unsupported operand type(s) for +: 'set' and 'set'
# 集合不能相加

 

posted @ 2019-02-07 22:39  落晨  阅读(183)  评论(0编辑  收藏  举报