Python——集合

集合的概述
Python语言中的集合类型与数学中的集合概念一致,即包括0个或多个数据项的无序组合。集合是无序组合,用大括号({})表示,它没有索引和位置的概念,集合中的元素可以动态增加或删除。
集合中的元素不可重复,元素类型只能是不可变数据类型,例如整数、浮点数、字符串、元组等,相比较而言,列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现

s = {1, 2, 3, 4, 5}
print(s, type(s))
#   set()可以将序列和字典转换成为集合
s = set([1,2,3,4,5])   #列表转集合
print(s,type(s))
s = set('Python')
print(s,type(s))  #集合中储存的数据是无序的
s = {1,2,3,4,4,5,6,7}  #集合中不能出现重复的元素
print(s)
s = set({'name':'XXX0','age':18})  #返回结果只返回key值
print(s,type(s))

运行结果如下:

{1, 2, 3, 4, 5} <class 'set'>
{1, 2, 3, 4, 5} <class 'set'>
{'n', 'o', 'y', 'P', 't', 'h'} <class 'set'>
{1, 2, 3, 4, 5, 6, 7}
{'name', 'age'} <class 'set'>

集合的使用
in 、 not in 用来检测当前元素

s ={1,2,3,4,5,'python'}
result = 'python' in s   #判断元素是否在当前的集合中,在返回True,否则,返回False
response = 5 not in s    
print(response)
print(result)
print(s)

运行结果:

False
True
{1, 2, 3, 4, 5, 'python'}

集合方法:


# 集合方法
#len()方法,用来检测集合的长度
s={1,2,3,'python'}
len(s)
print(len(s))
print(s)

#update() 将一个集合的元素添加到当前集合中来
s ={1,2,3}
s2 ={4,5,6}
s.update(s2)
print(s)

#pop()  #在集合中pop是随机删除一个元素并带有返回值
s ={'python','java','c'}
result = s.pop()
print(result)
print(s)

#remove() 删除集合中的指定元素
s = {'python','java','c'}
result =s.remove('java')
print(result,type(result))
print(s)


#clear()  清空集合
s = {'python','java','c'}
s.clear()
print(s)

运行结果:

4
{1, 2, 3, 'python'}
{1, 2, 3, 4, 5, 6}
python
{'java', 'c'}
None <class 'NoneType'>
{'python', 'c'}
set()

集合运算:

# 集合的运算
s = {1, 2, 3, 4, 5, 6}
s2 = {3, 4, 5, 6, 7, 8}
result = s ^ s2   #亦或集,指的是s和s2中b不相交的元素
print(result)
result = s | s2  #并集运算,指的是s和s2中所有的元素
print(result)
result = s & s2   #交集运算,指的是s和s2中共同的元素
print(result)
result = s - s2  #差集运算 ,注意:指的是s与s2中不相同的元素但不包括s2中的元素
print(result)

运行结果:

{1, 2, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}
{3, 4, 5, 6}
{1, 2}

集合的 <= >= < >

s = {1, 2, 3,}
s1 = {1, 2, 3, 4}
result = s <= s1   #检测一个集合是否是一个集合的子集  s集合是s1集合的子集,相反s1是s的超集
print(result)
result = s<s1   #检测一个集合是否是另一个集合的真子集
print(result)

运行结果:

True
True
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值