python学习笔记------集合(set)

集合定义格式

基本语法:

#定义集合字面量

{元素,元素,元素......,元素}

#定义集合变量

变量名称={元素,元素,元素......,元素}

#定义空集合

变量名称=set()

python 复制代码
#定义集合字面量  {元素,元素,元素......,元素}
{1,2,7,"zhangsan"}
#定义集合变量   变量名称={元素,元素,元素......,元素}
name={3,"zhangsan",5,"lisi"}
print(f"name的类型是{type(name)},name的内容:{name}")
#定义空集合  变量名称=set()
j=set()
print(f"j的类型是{type(j)},内容为:{j}")

集合的常用操作

集合是无序的,所以集合不支持:下标索引访问,

但集合和列表一样允许修改

添加新元素

集合本身被修改,添加新元素

语法:集合.add(元素)

python 复制代码
name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")
name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")

集合不允许重复,所以只添加一次"python"

移除元素

语法:集合.pop() 从集合中随机取出元素

结果:会得到一个元素的结果。同时集合本身被修改,元素被移除

python 复制代码
#移除元素
my_set={3,"zhangsan",5,"lisi","lisi","wangwu"}
element=my_set.pop()
print(my_set)
print(element)

清空集合

语法:集合.clear() 清空集合

结果:集合被清空

python 复制代码
#清空集合
print(name)
name.clear()
print(name)

取两个集合的差集

语法:集合1.difference(集合2) 取出集合1和集合2的差集(集合1有,集合2没有的)

结果:得到一个新集合,集合1和集合2不变

python 复制代码
#取两集合差集
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.difference(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")

消除2个集合的差集

语法:集合1.diference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素

结果:集合1被修改,集合2不变

python 复制代码
#消除两集合差集
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
my_set1.difference_update(my_set2)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")

合并集合

语法:集合1.union(集合2)

结果:得到新集合,集合1和集合2不变

python 复制代码
#合并集合
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.union(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")

统计集合元素数量

语法:len(集合)

注意:集合会去重

集合的遍历

集合不支持下标索引,所以不能用while循环

可以用for循环

python 复制代码
#定义集合字面量  {元素,元素,元素......,元素}
{1,2,7,"zhangsan"}
#定义集合变量   变量名称={元素,元素,元素......,元素}
name={3,"zhangsan",5,"lisi"}
print(f"name的类型是{type(name)},name的内容:{name}")
#定义空集合  变量名称=set()
j=set()
print(f"j的类型是{type(j)},内容为:{j}")
#添加元素
name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")
name.add("python")
print(f"name的类型是{type(name)},name的内容:{name}")

#移除元素
my_set={3,"zhangsan",5,"lisi","lisi","wangwu"}
element=my_set.pop()
print(my_set)
print(element)


#清空集合
print(name)
name.clear()
print(name)


#取两集合差集
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.difference(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")


#消除两集合差集
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
my_set1.difference_update(my_set2)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")

#合并集合
my_set1={3,"zhangsan",5,"lisi","lisi","wangwu","c++"}
my_set2={"java","python","php","zhangsan",6}
my_set3=my_set2.union(my_set1)
print(f"my_set1的内容是{my_set1}")
print(f"my_set2的内容是{my_set2}")
print(f"my_set3的内容是{my_set3}")

#遍历元素
for i in my_set1:
    print(i)
相关推荐
梁洪飞2 分钟前
通过链接文件和Start.S学习armv7
linux·arm开发·嵌入式硬件·学习·arm
小赵还有头发34 分钟前
安装Ceres与glog
linux·学习·无人机·ceres·glog
Engineer邓祥浩1 小时前
设计模式学习(16) 23-14 命令模式
学习·设计模式·命令模式
zhangrelay1 小时前
ROS云课三分钟-cmake默认版本和升级-260120
笔记·学习
sycmancia2 小时前
C语言学习07——变量的作用域
c语言·学习
lkbhua莱克瓦242 小时前
JavaScript核心语法
开发语言·前端·javascript·笔记·html·ecmascript·javaweb
SmartBrain2 小时前
Agent 知识总结
服务器·数据库·笔记
杨浦老苏2 小时前
离线优先的自托管笔记应用Anchor
笔记·docker·群晖
虾说羊2 小时前
Langchain4j中AIService学习
学习
CryptoPP3 小时前
主流国际股票行情API接口横向对比:如何选择适合你的数据源?
大数据·笔记·金融·区块链