随笔 - 384  文章 - 0  评论 - 35  阅读 - 142万

python 补一个集合set之间的运算

看到下面这个代码,不知道这个是什么意思:

复制代码
data=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
                   ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
                   ['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'],
                   ['stop', 'posting', 'stupid', 'worthless', 'garbage'],
                   ['mr', 'licks', 'ate', 'my', 'steak', 'how', 'to', 'stop', 'him'],
                   ['quit', 'buying', 'worthless', 'dog', 'food', 'stupid']]


def createVocabList(dataSet):  #创建词库 这里就是直接把所有词去重后,当作词库
    vocabSet = set([])
    for document in dataSet:
        vocabSet = vocabSet | set(document)  #set 丨 set 是什么意思
    return list(vocabSet)

createVocabList(data)
复制代码

 

一、首先了解一下什么是集合

集合(set)是一个无序的不重复元素序列

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

#格式如下
parame = {value01,value02,...}

#或者
set(value)

 

二、集合之前的运算

复制代码
#set()之后都没有重复值
a = set('abracadabra')   #{'a', 'b', 'c', 'd', 'r'}
b = set('alacazam')  #{'a', 'c', 'l', 'm', 'z'}

#a-b集合a中包含而集合b中不包含的元素
a-b  # {'b', 'd', 'r'}

# |或的意思,并集的意思,集合a或b中包含的所有元素
a|b  #{'a', 'b', 'c', 'd', 'l', 'm', 'r', 'z'}

# &且,交集,集合a和b中都包含了的元素
a&b  #{'a', 'c'}

# ^,不同时包含于a和b的元素 ,a有b没有,或者b有a没有
a^b  #{'b', 'd', 'l', 'm', 'r', 'z'}
复制代码

 

 

三、集合的基本操作

1.添加元素

1.1 s.add(x) 将一个元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作,参数不能是list

thisset = set(("Google", "Runoob", "Taobao"))
thisset.add("Facebook")

#{'Taobao', 'Facebook', 'Google', 'Runoob'}

1.2 s.update(x) :可以添加多个元素,且参数可以是list ,  tuple ,  dict 等

thisset = set(("Google", "Runoob", "Taobao"))
thisset.update({1,3})  #{1, 3, 'Google', 'Taobao', 'Runoob'}

thisset.update([1,4],[5,6])  
#{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}

二者的区别

thisset = set(("Google", "Runoob", "Taobao"))
thisset.update("Facebook")

#{'F', 'Google', 'Runoob', 'Taobao', 'a', 'b', 'c', 'e', 'k', 'o'}

 

2.移除元素

1 s.remove( x )  将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
2 s.discard( x )  是移除集合中的元素,且如果元素不存在,不会发生错误
3 s.pop()  设置随机删除集合中的一个元素

例子:

复制代码
#处理pop 有结果返回,其他的都没有结果返回

thisset = set(("Google", "Runoob", "Taobao"))
thisset.remove("Taobao")
print(thisset)  #{'Google', 'Runoob'}
thisset.remove("Facebook")   # 不存在会发生错误


thisset = set(("Google", "Runoob", "Taobao"))
thisset.discard("Facebook")  # 不存在不会发生错误

thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
thisset.pop()  #'Google'
复制代码

 

3.计算集合元素的个数

thisset = set(("Google", "Runoob", "Taobao"))
len(thisset)   # 3

 

4.清空集合

thisset = set(("Google", "Runoob", "Taobao"))
thisset.clear()
print(thisset)
#set()

 

5.判断元素在集合中是否存在

#x in s ,判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。
thisset = set(("Google", "Runoob", "Taobao"))
 "Runoob" in thisset  #True
"Facebook" in thisset  #False

 

附录是集合的完整内置方法

方法描述
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集。
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复的元素集合。
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union() 返回两个集合的并集
update() 给集合添加元素
posted on   小小喽啰  阅读(349)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示