Python--基本的对象类型(集合)

以下方法均在python解释器中进行了测试,读者复制代码时,记得去掉注释符。

#!/usr/bin/env  python
# -*- coding: utf-8 -*-
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# 第一类集合:可变集合
# ******************通过set类创建的对象******************
# 1:集合的格式:使用大括号 { } 或者 set() 函数创建集合
#       定义:1、不同元素组成;2、无序;3、集合中的元素必须是不可变类型(数字,字符串,元组)
# 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
# se1 = {11,"qwer",(11,22,)}
# se2 = set((11,22,33)) #set创建集合时,括号内必须是可迭代的对象
# print(se1,se2)

# 2:集合是可迭代的
# se = set("qeyqi2321oi3h")
# for i in se:
#     print(i)

# 3:集合其他方法in,not in ,len()
# se = set("qeyqi2321oi3h")
# print(2 in se)
# print(len(se))

# ******************set类中提供的方法******************
# 1:add()方法:向集合添加元素
# se = {11,"qwer",(11,22,)}
# s  = se.add(2222)   #括号内必须是可哈希的对象
# print(se)

# 2:clear()方法:清空集合
# se = {11,"qwer",(11,22,)}
# print(se)
# se.clear()
# print(se)

# 3:copy()方法:浅拷贝集合
# se1 = {11,"qwer",(11,22,)}
# se2 = se1.copy()
# print(se2)

# 4:集合内元素的删除
# s = {11,"22",("qwer",5,6,),"qwer"}
# s1 = s.remove(11)   #remove删除特定元素,要删除的元素不存在时,会报错;无返回值
# print(s,s1)
#
# s = {11,"22",("qwer",5,6,),"qwer"}
# s2 = s.discard(11)   #discard删除特定元素,要删除的元素不存在时,不会报错;无返回值
# print(s,s2)
#
# s = {11,"22",("qwer",5,6,),"qwer"}
# s.pop()     #随机删除一个元素,有返回值
# print(s,s.pop())

# 5:update()方法:用于修改当前集合,可以添加新的元素或集合到当前集合中
# 如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略
# se1 = set("123456")
# print(se1)
# se2 = set("qwerdf")
# se2.update(se1)
# print(se2)

# 6:issubset()方法:判断se2是不是se1的子集,并返回bool值
# se1 = {11,22,33}
# se2 = {11,22}
# print(se2.issubset(se1))

# 7:issuperset()方法:判断se1是不是se2的父集,并返回bool值
# se1 = {11,22,33}
# se2 = {11,22}
# print(se1.issuperset(se2))

# 8:isdisjoint()方法:判断两个集合有没有交集,没有返回True
# se1 = {11,22,33}
# se2 = {11,22}
# print(se1.isdisjoint(se2))
# se3 = {44,55}
# se4 = {66,77}
# print(se3.isdisjoint(se4))

# ******************集合中常用的关系运算******************
# 1:求集合的交集
# se1 = {1,2,"hello",3}
# se2 = {3,4,5,"hello"}
# print(se1,se2)
# print(se1.intersection(se2))
# print(se1&se2)
# se2.intersection_update(se1)    #intersection_update方法:求交集,并且用交集覆盖se2
# print(se1,se2)

# 2:求集合的并集
# se1 = {1,2,"hello",3}
# se2 = {3,4,5,"hello"}
# print(se1,se2)
# print(se1.union(se2))
# print(se1|se2)

# 3:求集合的差集
# se1 = {1,2,"hello",3}
# se2 = {3,4,5,"hello"}
# print(se1,se2)

# print(se1.difference(se2))  #在se1去掉和se2相同的部分后剩余的部分
# print(se1-se2)

# print(se2.difference(se1))  #在se2去掉和se1相同的部分后剩余的部分
# print(se2-se1)

# se2.difference_update(se1)  #difference_update方法:求并集,并且用并集覆盖se2
# print(se1,se2)

# 4:求集合的交叉补集
# se1 = {1,2,"hello",3}
# se2 = {3,4,5,"hello"}
# print(se1,se2)
# print(se1.symmetric_difference(se2))    #返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
# print(se1^se2)
# se2.symmetric_difference_update(se1)    #symmetric_difference_update方法:求交叉补集,并且用交叉补集覆盖se2
# print(se1,se2)

# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# 第二类集合:不可变集合
# 注意:1:不可变集合它不可以增加删除集合中的元素,该集合中的内容是不可改变的,类似于字符串、元组
#       2:不可变集合,除了内容不能更改外,其他功能及操作跟可变集合set一样
# s1 = frozenset("qwer1234")     #传入序列,生成不可变集合
# s2 = frozenset({11,22,33})     #传入集合,生成不可变集合
# s3 =frozenset()                #定义空的不可变集合
集合的常用方法

 

posted @ 2019-10-17 23:05  青隅  阅读(685)  评论(0编辑  收藏  举报