这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » Python对Sets(集合)的操作

共4条 1/1 1 跳转至

Python对Sets(集合)的操作

专家
2024-02-18 18:01:23   被打赏 30 分(兑奖)     打赏

1、访问集合中的元素

集合本身是无序的,所以想要访问的话,是无法通过索引定位。但我们可以把集合转化为列表后进行访问。转化处理使用list关键字。

objs=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

print(list(objs))

输出为:[1, 3.14, 'a']

objs=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

print(list(objs))

输出为:['the', 1, 3.14, 'a', 'Tom', 'Abs', 'tom']

显然,转化过程中,数据的先后没有啥规律可循。


2、判断元素是否在集合中存在,in/not in,返回布尔型数据

objs=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

print(1 in objs)   输出:True

print('ab' in objs)   输出:False


3、集合数据合并 update

   update()使一个集合中数据合并到另一个集合中。

>>> objs=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

>>> obj2=set(['anna', 1])

>>> objs.update(obj2)

>>> print(objs)

{'the', 1, 3.14, 'a', 'Tom', 'Abs', 'anna', 'tom'}

>>> print(obj2)

{1, 'anna'}

>>>

可以看到,objs被更新了,但obj2没有变化。另外重复性的值,被过滤掉了。


4、删除集合中的元素pop()

pop()的删除,是随机性删除

>>> objs=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

>>> objs.pop()

'the'

>>> print(objs)

{1, 3.14, 'a', 'Tom', 'Abs', 'tom'}

>>> objs.pop()

1

>>> print(objs)

{3.14, 'a', 'Tom', 'Abs', 'tom'}

>>>


5、定位删除remove(值),删除指定的值

>>> objs=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

>>> objs.remove(1)

>>> print(objs)

{'the', 3.14, 'a', 'Tom', 'Abs', 'tom'}

>>>

删除不存在的值,会报错


6、清除数据clear()

这个操作会清空集合中的左右数据

>>> objs=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

>>> objs.clear()

>>> print(objs)

set()

>>>


7、取集合中的交集 &

操作结果会得到一个新的集合,不改变原来的集合。新集合中的数据是在两个集合中共存的数据

>>> obj1=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

>>> obj2=set([1,'the'])

>>> print(obj1 & obj2)

{'the', 1}

>>>


8、集合合并 |

这个操作符是让两个集合合并为一个新的集合,不改变原来的集合

>>> obj1=set([1,2,3])

>>> obj2=set(['a','b','c'])

>>> print(obj1|obj2)

{1, 2, 3, 'c', 'b', 'a'}

>>> print(obj1)

{1, 2, 3}

>>> print(obj2)

{'c', 'b', 'a'}

>>>


9、集合差 seta-setb 

这个操作符返回一个新的集合,元素是所有seta中不存在于setb中的元素

>>> obj1=set([1,2,3,'a'])

>>> obj2=set(['a','b','c',1])

>>> print(obj1-obj2)

{2, 3}

>>> print(obj2 - obj1)

{'c', 'b'}

>>>


10、异或^

这个操作符返回一个新的集合,元素是两个结合中不相同的元素

>>> obj1=set([1,2,3,'a'])

>>> obj2=set(['a','b','c',1])

>>> print(obj1^obj2)

{2, 3, 'b', 'c'}

>>>


11、集合之间的关系,返回布尔型结果

 11.1 <= 判断一个集合是否为另一个集合的子集

 11.2 <  判断一个集合是否为另一个集合的真子集

 11.3 >= 判断一个集合是否为另一个集合的超集

 11.4 >  判断一个集合是否为另一个集合的真超集

 

>>> obj1=set([1,2,3])

>>> obj2=set([1,2,3,4])

>>> print(obj1<obj2)

True

>>> print(obj1<=obj2)

True

>>> print(obj2<obj1)

False

>>> print(obj2<=obj1)

False

>>> print(obj2>obj1)

True

>>> print(obj2>=obj1)

True

>>> obj3=set([1,2,3])

>>> print(obj3>=obj1)

True

>>> print(obj3>obj1)

False

>>>


12、获取集合的长度len

>>> obj1=set([1,'a', 3.14, 'the','tom','Tom','Abs'])

>>> print(len(obj1))

7

>>>





关键词: 菜鸟学单片机     Python     操作集合    

工程师
2024-02-23 14:11:34     打赏
2楼

学习了


专家
2024-02-24 01:04:38     打赏
3楼

谢谢分享


菜鸟
2024-02-27 09:10:04     打赏
4楼

学习一下,谢谢分享!


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]