首页 > 编程语言 >Python 1-19 集合

Python 1-19 集合

时间:2023-05-22 11:06:38浏览次数:31  
标签:Baidu set Python 元素 19 thisset Taobao 集合


Python 1-19 集合

集合(set)是一个无序的不重复元素序列

创建集合,使用 { } 或者 set() ,注意:创建一个空集合必须用 set() ,因为 { } 是用来创建一个空字典。

parame = {value01,value02,...} 或者 set(value)

>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket) # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}
>>> 'orange' in basket # 快速判断元素是否在集合内
>>> 'crabgrass' in basket
>>> # 下面展示两个集合间的运算. ...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a {'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'} 差集
>>> a | b # 集合a或b中包含的所有元素 并集
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素 交集
{'a', 'c'}
>>> a ^ b # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}

类似列表推导式,同样集合支持集合推导式(Set comprehension):

>>>a = {x for x in 'abracadabra' if x not in 'abc'}

集合的基本操作

1、添加元素

1)s.add( x ) # 将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

>>>thisset = set(("Google", "Baidu", "Taobao"))
>>>thisset.add("Facebook")

>>>print(thisset) # {'Taobao', 'Facebook', 'Google', 'Baidu'}

2)s.update( x ) # x 可以有多个,用逗号分开,且参数可以是列表,元组,字典等。

>>>thisset = set(("Google", "Baidu", "Taobao"))
>>>thisset.update({1,3})
>>>print(thisset) # {1, 3, 'Google', 'Taobao', 'Baidu'}
>>>thisset.update([1,4],[5,6])
>>>print(thisset) # {1, 3, 4, 5, 6, 'Google', 'Taobao', 'Baidu'}

2、移除元素

1)s.remove( x ) # 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。

>>>thisset = set(("Google", "Baidu", "Taobao"))
>>>thisset.remove("Taobao")
>>>print(thisset) {'Google', 'Baidu'}
>>>thisset.remove("Facebook") # 不存在会发生错误 KeyError: 'Facebook'

2)s.discard( x ) # 将元素 x 从集合 s 中移除,如果元素不存在,不会发生错误。

>>>thisset = set(("Google", "Baidu", "Taobao"))
>>>thisset.discard("Facebook") # 不存在不会发生错误
>>>print(thisset) # {'Taobao', 'Google', 'Baidu'}

3)s.pop() # 随机删除集合中的一个元素

thisset = set(("Google", "Baidu", "Taobao", "Facebook"))
x = thisset.pop()
print(x)

多次执行测试结果都不一样。
set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。

4)s.clear() # 清空集合 s

3、其他

len(s) # 计算集合 s 元素个数
x in s # 判断元素 x 是否在集合 s 中

集合内置方法完整列表

add() # 为集合添加元素
update() # 给集合添加元素

remove() # 移除指定元素
discard() # 删除集合中指定的元素
pop() # 随机移除元素
difference_update() # 移除集合中的元素,该元素在指定的集合也存在。	
symmetric_difference_update() # 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。	
clear() #移除集合中的所有元素	

isdisjoint() # 判断两个集合是否包含相同的元素
issubset() # 判断指定集合是否为该方法参数集合的子集
issuperset() # 判断该方法的参数集合是否为指定集合的子集
	
intersection() # 返回集合的交集
intersection_update() # 返回集合的交集	
union() # 返回两个集合的并集
difference() # 返回多个集合的差集
symmetric_difference() # 返回两个集合中不重复的元素集合	

copy() # 拷贝一个集合

集合交并补

a, b = {1,2,3}, {3,4,5}
a & b # 交集
a | b # 并集
c = a.union(b)
c = a.intersection(b)
a - b # 差集
c = a.difference(b)
b - a


标签:Baidu,set,Python,元素,19,thisset,Taobao,集合
From: https://blog.51cto.com/u_1439909/6321609

相关文章

  • Python 2-04 匿名函数
    Python匿名函数一、匿名函数lambdaλlambda[args]:expression即lambda[参数列表]:表达式lambda_add=lambdax,y:x+ydefnormal_add(x,y):returnx+yassertlambda_add(2,3)==normal_add(2,3)注:assertexpression[,arguments]即:assert表达式......
  • Python 1-14 列表
    Python1-14列表一、Python列表Python的列表是一个有序可重复的元素集合classlist([iterable])虽然被称为函数,list实际上是一种可变序列类型。1、创建创建一个列表,在方括号括中用逗号分隔不同的数据项。列表内的元素,可以是其它任意类型的数据,可多层嵌套列表,元素个数无限制。>>......
  • Python 1-14 列表
    Python1-14列表一、Python列表Python的列表是一个有序可重复的元素集合classlist([iterable])虽然被称为函数,list实际上是一种可变序列类型。1、创建创建一个列表,在方括号括中用逗号分隔不同的数据项。列表内的元素,可以是其它任意类型的数据,可多层嵌套列表,元素个数无限制。>>......
  • Python 2-03 递推和递归
    递推和递归一、递推算法Recursionmethod递推算法是通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。递推算法分为顺推和逆推两种。动态规划1、顺推法所谓顺推法是从已知条件出发,逐步推算出要解决的问题的方法叫顺推。#n!阶乘deffactorial(n):t=1fori......
  • Python 2-07 装饰器 @decorator
    Python装饰器@decoratorPython装饰器其实就是对函数的包装,函数作为参数,在不修改函数源代码的基础上,并对函数做一些包装,然后返回增加了包装的函数,即生成了一个新函数。登录校验,权限校验,日志记录等,这些功能在各个环节都可能需要,但又十分雷同,可以通过装饰器来抽象、剥离这部分代码......
  • Python 4-09 time
    time 在 Python 中与时间处理有关的模块包括 time,datetime 以及 calendar。在 Python 中,用三种方式来表示时间,分别是时间戳、格式化时间字符串和结构化时间。时间戳(timestamp):1970年1月1日之后的秒,可以通过 time.time() 获得。时间戳是一个浮点数,可以进行加减运算,但......
  • Python 1-18 字典
    Python1-18字典Python的字典数据类型采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。例如,用list实现成绩单:#给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。names=......
  • Python 1-17 元组
    Python1-17元组classtuple([iterable])tuple是一个不可变的序列类型。>>>s='abc'>>>l=[1,2]>>>t=1,2>>>d=dict(a=1,b=2)>>>set={'a','b'}1、元组创建>>>tup=()#创建空元组>>......
  • Python 2-02 命名空间和作用域
    命名空间和作用域一、命名空间命名空间(Namespace)是从名称到对象的映射,一般用Python字典来实现。为了解决项目中名字冲突的问题引入了命名空间的概念,命名空间可以嵌套。1、命名空间分类:内置名称(built-innames),Python语言内置的名称,比如函数名abs、char和异常名称Exception......
  • Python 2-01 函数
    一、函数定义def函数名(参数列表):函数体判断一个数是不是素数?#方法一:for循环判断素数num=int(input('请输入一个正整数:'))foriinrange(2,int(num**0.5)+1):ifnotnum%i:print(f'{num}不是素数')breakelse: print(f'{num}是素数')......