python3中的集合

Posted 一只小白熊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3中的集合相关的知识,希望对你有一定的参考价值。

集合(set)是一个无序的 不重复的 数据类型:

  使用set()函数来创建集合,set([value])也可以使用 name = {age1,age2,age3...}来创建集合,但是创建空集合时需要使用set()来创建,一般情况下我们都是使用set()来创建集合。

#创建一个列表
#list1 = {"red","yellow","yellow","green"} 创建集合的方式1
#去重演示
>>>list2 = =set(["red","yellow","yellow","green"])
>>>print(list2)
{‘red‘, ‘yellow‘, ‘green‘}#输出结果,因为集合是不重复的数据类型,所以这里的打印结果中不会有重复的元素
#判断元素是否在集合中
>>>"yellow" in list2#如果元素在列表中,返回True
True
>>>"blue" in list2 #否则返回为False
False

  下面展示两个集合数据的操作方式:aggregate1-aggregate2 = 

>>>a = set(‘abcabcabc‘)
>>>b = set (‘ccdefj‘) >>>print(a) {‘b‘, ‘c‘, ‘a‘}#去重之后的结果 >>>print(b)
{‘c‘, ‘f‘, ‘e‘, ‘j‘,
‘d‘}#同上
#"a-b"表示a中所有包含的元素减去b中和a重复的元素,并且保留a中的未重复的元素
>>>print(a-b)
{‘a‘, ‘b‘}
>>>print(b-a)
{‘e‘, ‘j‘, ‘f‘, ‘d‘}

  a | b 集合a和b中所有的元素 

>>>a = set(‘abcabcabc‘)
>>>b = set (‘ccdefj‘)
>>>print(a|b)集合a和b中所有的元素
{‘c‘, ‘f‘, ‘e‘, ‘d‘, ‘j‘, ‘b‘, ‘a‘}

  a & b  集合a和b中都包含的元素

>>>a = set(‘abcabcabc‘)
>>>b = set (‘ccdefj‘)
>>>print(a & b)#集合a和b中都包含的元素
{‘c‘}

  a ^ b  集合a和b中所有相互不包含的数

>>>a = set(abcabcabc)
>>>b = set (ccdefj)
>>>print(a^b)
{d, j, b, a, f, e}#包含了a和b中所有不重复的元素

关于集合的操作

1,添加元素

语法格式:

  list1.add(s)    #将元素s添加至集合列表list1中,如果已经存在不会进行任何操作,因为集合中不会有任何重复的数据

>>>zoo = set(["lion","tiger","monkey"])
>>>zoo.add("panda")
print(zoo)
{panda, lion, tiger, monkey}#已经成功添加

  list1.update({list})#update可添加元素和列表,并且可以添加多个元素和列表,中间用","号分开即可

 

>>>zoo = set(["lion","tiger","monkey"])
>>>zoo.update(["panda","dog"],["pig"])#插入了两个列表
>>>print(zoo)
{dog, lion, pig, panda, tiger, monkey}

 

2,移除元素

语法格式:

    list1.remove(s)#将元素s将list1中移除,如果元素不存在集合中,则会报错

>>>zoo = set(["lion","tiger","monkey"])
>>>zoo.remove("dog")#删除元素中不存在的元素"dog"
>>>print(zoo)
    zoo.remove("dog")
KeyError: dog#系统进行报错

>>>zoo = set(["lion","tiger","monkey"])
>>>zoo.remove("lion")#删除存在的元素"lion"
>>>print(zoo)
{monkey, tiger}

    list1.discard (s) #将元素s从集合list1中移除,如果元素不存在的话,不会进行报错

>>>zoo = set(["lion","tiger","monkey"])
>>>zoo.discard("dog")#删除一个集合中没有的元素
>>>print(zoo)
{lion, monkey, tiger}#和remove不同,不会报错


>>>zoo = set(["lion","tiger","monkey"])
>>>zoo.discard("monkey")#删除一个已经存在的元素
>>>print(zoo)
{tiger, lion}#可正常删除

    list1.pop () #将元素随机删除一个值,并且可以返回值,多次执行结果不同

>>>zoo = set(["lion","tiger","monkey"])
>>>a = zoo.pop()#随机删除
>>>print(a)
tiger#第一次执行结果
tiger#第二次执行结果
monkey#第三次执行结果
#每次执行结果随机

清空集合:

    语法格式:

        list1.clear()#清空集合内的所有元素

>>>zoo = set(["lion","tiger","monkey"])
>>>a = zoo.clear()#清空集合
>>>print(a)
None

判断元素是否在集合中

  语法格式:

      "s" in list1#如果s在集合list1中的话返回为True,否则为False

  

>>> zoo = set(["lion","tiger","monkey"])
>>> "monkey" in zoo  #存在的情况下
True


>>> zoo = set(["lion","tiger","monkey"])
>>> "dog" in zoo #不存在的情况下
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() 给集合添加元素

 

      

 

以上是关于python3中的集合的主要内容,如果未能解决你的问题,请参考以下文章

scrapy主动退出爬虫的代码片段(python3)

scrapy按顺序启动多个爬虫代码片段(python3)

代码片段 - Golang 实现集合操作

laravel特殊功能代码片段集合

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

如何从一个片段中删除数据,这些片段应该反映在google firebase中的其他片段中