博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合 (set)
阅读量:5771 次
发布时间:2019-06-18

本文共 2975 字,大约阅读时间需要 9 分钟。

 

set 是一个无序不重复的元素集,集合跟字典是无序的,不支持索引

创建集合:

第一种方式:通过{ }创建

>>> num={1,2,3,4,3,3,1}>>> num{
1, 2, 3, 4}>>> type(num)

第二种方式:通过set() 

>>> li=set(['aaa','bbb','aaa'])>>> li{
'aaa', 'bbb'}

 

可以去除列表里的重复项但不能保证顺序:

>>> num=[4,3,2,1,2,2]

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

 

class set(object):    def add(self, *args, **kwargs): #添加,把传入的元素作为一个整个添加进去        >>> st.add('python')        >>> st        {
'd', 'f', 'python', 'a', 'b', 'c'} def update(self, *args, **kwargs): # 更新,把传入的元素拆分然后传入集合 """ >>> s1=set('boy') >>> s1 {'b', 'y', 'o'} >>> s1.update('python') >>> s1 {'t', 'y', 'p', 'n', 'h', 'b', 'o'} """ pass def clear(self, *args, **kwargs): # 清空 >>> st.clear() >>> st set() pass def copy(self, *args, **kwargs): # 拷贝 def difference(self, *args, **kwargs): #差集。在s1集合,不在s2集合的,操作后可以输出返回值 >>> s1=set(['aaa','bbb']) >>> s2=set(['bbb','ccc']) >>> s1.difference(s2) {
'aaa'} def difference_update(self, *args, **kwargs): #将s1更新为s1-s2的差集。没有返回值 >>> s1 {
'aaa', 'bbb'} >>> s2 {
'bbb', 'ccc'} >>> s1.difference_update(s2) >>> s1 {
'aaa'} >>> s2 {
'bbb', 'ccc'} def discard(self, *args, **kwargs): # 删除 def remove(self, *args, **kwargs): # 删除 #set.remove(obj)和set.discard(obj)的区别在于,当obj存在于set中时,都将其删除;但当obj不存在于set中时,remove()会报错,discard()不会。 def pop(self, *args, **kwargs): # 随机删除 >>> a=set('abcd') >>> a.pop() 'b' >>> a.pop() 'd' def intersection(self, *args, **kwargs): # 交集 s1 & s2 >>> s1=set(['aaa','bbb']) >>> s2=set(['bbb','ccc']) >>> d=s1.intersection(s2) >>> print(d) {
'bbb'} def intersection_update(self, *args, **kwargs): # 交集 s1更新为这个值 def isdisjoint(self, *args, **kwargs): # 没有交集 >>> s1.isdisjoint(s2) False def issubset(self, *args, **kwargs): # s1的每一个元素都在s2中 >>> s1=set('abc') >>> s2=set('abcdef') >>> s1.issubset(s2) True def issuperset(self, *args, **kwargs): # s2的每一个元素都在s1中 >>> s1.issuperset(s2) False def symmetric_difference(self, *args, **kwargs): # s1,s2的对称差,有返回值 >>> s1=set(['aaa','bbb']) >>> s2=set(['bbb','ccc']) >>> d=s1.symmetric_difference(s2) >>> print(d) {
'ccc', 'aaa'} def symmetric_difference_update(self, *args, **kwargs): # s1更新为s1,s2的对称差,没有返回值 >>> s1=set(['aaa','bbb']) >>> s2=set(['bbb','ccc']) >>> s1.symmetric_difference_update(s2) >>> s1 {
'aaa', 'ccc'} def union(self, *args, **kwargs): # 并集 s1 | s2

 

还有一种不可变的集合:frozenset

>>> s = frozenset([1,2,3,4])

>>> s.add(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute 'add'

 

转载于:https://www.cnblogs.com/xiaobaozi-95/p/8931890.html

你可能感兴趣的文章
linux下mongo启动关闭重启方法
查看>>
一些网站
查看>>
语音特征参数MFCC提取过程详解
查看>>
使用GitHub进行版本管理
查看>>
如何选择适合你的渲染软件
查看>>
c++动态规划解决硬币换零钱的问题
查看>>
Qt下几个线程函数介绍
查看>>
Passware Kit和AOPR哪个更厉害?
查看>>
Loading XML with Javascript
查看>>
C++、Java、JavaScript中迭代器的用法
查看>>
jackson not marked as ignorable异常
查看>>
Python version 2.7 required, which was not foun...
查看>>
android 模拟器 横竖屏切换
查看>>
centos7.3 下安装 composer,解决Failed to decode zlib stream错误
查看>>
Git 常用命令
查看>>
在Postgres 数据库中生成36位的UUID代码
查看>>
基于mybatis的BaseDao及BaseService深度结合
查看>>
从程序员进阶到架构师,6大核心技能要领详解
查看>>
CDH安装方法
查看>>
spring mvc+Ajax跨域请求-CORS方式
查看>>