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中的集合的主要内容,如果未能解决你的问题,请参考以下文章