首页 > 编程语言 >python3-set

python3-set

时间:2023-04-17 10:02:52浏览次数:36  
标签:set 迭代 对象 print set1 集合 python3

1、介绍

builtins.py文件中定义了set类,用于处理python中集合数据。

set也是python的基本数据类型之一。

  • 集合是单列的元素集合,用{}包围,内部元素之间用,分隔
  • 集合的元素可以是任意类型,且某一集合中可以同时包含不同类型
  • 集合定义后可以进行增删改
  • 集合不支持数值索引
  • set是无序集合,即元素会自动排序和去重,默认是降序

2、类

class set(object):
    def __init__(self, seq=()):
        pass

3、字面量初始化

print({12, '45', 35, 35})
print({12, '45', 35})
print({12, '45'})

4、类初始化

  • 类初始化,参数只能最多有一个,为可迭代对象,否则会报错
  • 创造一个空集合,必须使用类初始化,字面量无法创造空集合对象
set()
print(set("abc"))

5、属性

6、方法

(1)update

update(self, s)
  • s,必要参数,类型是集合元素,类型错误报错:TypeError: ‘int’ object is not iterable
  • 对于已经存在的则不更新,对于不存在的元素则添加进去并排序

set1 = set((1,2,5))
set1.update({2,"fd"})
print(set1)#{'fd', 1, 2, 5}

(2)add

add(self, element)
  • element为必要参数,可以是数值,字符串和元组,不能是set,list等类型,报错:TypeError: unhashable type: ‘list’
  • 方法是添加元素

(3)difference

difference(self, s)
  • s必要参数,必须是可迭代对象
  • 方法是集合与参数中的迭代对象比较,返回集合元素在参数迭代对象中不存在的元素集合
  • 不对原对象产生影响
set1 = set((1,2,5))
set2 = {1,2,9,10}

print(set1.difference(set2))#{5}

(4)difference_update

difference_update(self, s)
  • 参考difference,将不同集合元素作为集合赋值给对象
set1 = set((1,2,5))
set2 = (1,2,9,10)

print(set1.difference_update(set2))#None
print(set1)#{5}

(5)discard

discard(self, element)
  • element是必要参数,如果类型是数值且存在,则从集合中移除,否则不做任何事,不会报错
  • 返回None

(6)intersection

intersection(self, s)
  • s为必要参数,类型为可迭代对象。
  • 方法是集合对象与可迭代参数对象的元素比较,取交集作为返回集合的元素
  • 不对原集合产生影响
set1 = set((1,2,5))
set2 = (1,'2',9,10)

print(set1.intersection(set2))#{1}

(7)intersection_update

intersection_update(self, s)
  • s为必要参数,类型为可迭代对象。
  • 方法是集合对象与可迭代参数对象的元素比较,取交集作为返回集合的元素赋值给原集合对象
  • 返回None
set1 = set((1,2,5))
set2 = (1,'2',9,10)

print(set1.intersection_update(set2))#None
print(set1)#{1}

(8)isdisjoint

isdisjoint(self, s)
  • s为必要参数,可迭代对象
  • 如果两个集合没有任何交集,返回True

(9)issubset

issubset(self, s)
  • s为必要参数,可迭代对象
  • 如果s包含当前集合,返回True

(10)issuperset

issuperset(self, s)
  • s为必要参数,可迭代对象
  • 如果当前集合包含s,返回True

(11)symmetric_difference

symmetric_difference(self, s)
  • s为必要参数,可迭代对象
  • 方法是集合对象与可迭代参数对象的元素比较,取两个对象中交集对象之外的元素作为返回集合的元素,即只在一个对象中包含的元素
  • 不对原集合产生影响
set1 = set((1,2,5))
set2 = (1,2,9)

print(set1.symmetric_difference(set2))#{5, 9}
print(set1)#{1, 2, 5}

(12)symmetric_difference_update

symmetric_difference_update(self, s)
  • s为必要参数,可迭代对象
  • 方法是集合对象与可迭代参数对象的元素比较,取两个对象中交集对象之外的元素作为返回集合的元素赋值给原集合,即只在一个对象中包含的元素
  • 返回None

(13)union

union(self, s)
  • s为必要参,可迭代对象
  • 方法是返回并集
  • 不对原集合产生影响
set1 = set((1,2,5))
set2 = (1,2,9)

print(set1.union(set2))#{1, 2, 5, 9}
print(set1)#{1, 2, 5}

(14)其他

copy、remove、pop、clear

7、运算

元组不支持对元素赋值、del,但是拼接+、复制*和赋值=是可以的,也支持in和not in

集合不支持索引操作,也不支持拼接+、复制*。但支持集合运算,必须双方都是集合。

print(a - b)     # a 和 b 的差集
print(a | b)     # a 和 b 的并集
print(a & b)     # a 和 b 的交集
print(a ^ b)     # a 和 b 中不同时存在的元素

标签:set,迭代,对象,print,set1,集合,python3
From: https://www.cnblogs.com/wd404/p/17324866.html

相关文章

  • python3-dict
    1、介绍builtins.py文件中定义了dict类,用于处理python中字典数据。list也是python的基本数据类型之一。2、类classdict(object):def__init__(self,seq=None,**kwargs):pass3、字面量初始化键必须是number、str和tuple这几种不可变类型,值可以是任意类型......
  • python3-range
    1、介绍range是一个类,用于帮助for循环。2、类classrange(object):"""range(stop)->rangeobjectrange(start,stop[,step])->rangeobject"""def__init__(self,stop):pass3、使用(1)一个参数foriinrange(3):#遍历0,......
  • python3-open
    1、介绍python3中,可以通过内建模块的open函数,进行文件的读写,以及创建文件。2、函数open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)file:必需,文件路径(相对或者绝对路径)。mode:可选,文件打开模式buffering:设......
  • python3-bytes
    1、介绍python3中,使用bytes类处理字节数据。2、类classbytes(object):"""bytes(iterable_of_ints)->bytesbytes(string,encoding[,errors])->bytesbytes(bytes_or_buffer)->immutablecopyofbytes_or_bufferbytes(int)->byt......
  • python3-type
    1、介绍type本身是内建模块中的一个类,其主要作用是用于判断变量的数据类型。2、类classtype(object):def__init__(cls,what,bases=None,dict=None):"""type(object_or_name,bases,dict)type(object)->theobject'stypetype......
  • python3-len
    1、介绍python3中,可以使用函数len获取容器对象的长度,比如str字符串、list列表等。2、函数deflen(*args,**kwargs):pass返回类型为int,如果长度为0,则就返回0不能对非容器变量使用,会报错,比如int、None值3、示例#不能对非容器变量使用,会报错#print(len(123))pri......
  • 第五节:setState详解、render函数优化、数据不可变、ref获取DOM和组件
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • Sumsets UVA - 10125
     一个集合中需要找到a,b,c,d,使得a+b+c=d 枚举a,b,计算a+b,存在map里再枚举d,c,计算d-c是否存在d-c==a+b #include<iostream>#include<map>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e3+2;//a+b==d-c#definepiipair<......
  • 一篇文章让你面试畅谈HashMap,Hashtable,TreeSet,TreeMap
    HashMapMap与Collection并列存在。用于保存具有映射关系的数据:Key-ValueMap中的key和value可以是任何引用类型,会封装到HashMap$Node对象中Map中的key不允许重复,原因和HashSet一样,前面分析过源码Map中的value可以重复Map的key可以是null,value也可以为null,注意key为null只能有一个,val......
  • DaemonSet控制Pod拉起节点
    实验现象创建dsapiVersion:apps/v1kind:DaemonSetmetadata:name:nginxspec:selector:matchLabels:app:nginxtemplate:metadata:labels:app:nginxspec:containers:-name:nginximage:nginx:1.2......