python中集合的常见用法

python入门笔记(11)

集合:可变的数据类型,但里面的元素必须是不可更改的数据类型
具有无序性
不可重复性
当集合为空时,表示为set(),一定要记住不是set{}

  1. 创建集合
set1 = set({1,2,3})
print(set1)
set2 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua',}
print(set2)
#最后的结果为:{1, 2, 3}
#{'huaxiaoyou', 'lalala', 'mingzi', 'jiaoxiaohua', 'wode'}
#由于set集合是无序的,所以结果的顺序可能不一样

列表和字典是可更改的对象(即不可哈希),所以不能创建集合

set3 = {1,2,3,[2,3],{'name':'huaxiaoyou'}}  # 错的
print(set3)
#最后结果会提示错误

add增:增加的元素不可拆分,而且其位置是不确定的(无序性)

set1 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua'}
set1.add('女神')
print(set1)
#最后的结果为:{'女神', 'huaxiaoyou', 'lalala', 'mingzi', 'wode', 'jiaoxiaohua'}
#由于set集合是无序的,所以结果的顺序可能不一样

update增:增加的元素拆分之后输出,且无序

set1 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua'}
set1.update('abc')
print(set1)
#最后的结果为:{'a', 'c', 'lalala', 'huaxiaoyou', 'b', 'wode', 'mingzi', 'jiaoxiaohua'}

3.删

pop删:随机删除,在实际应用中没有什么很大的用处

set1 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua'}
#set1.pop()  随机删除,没有返回值
print(set1.pop())  # 随机删除,有返回值
print(set1)
#最后结果为jiaoxiaohua
#{'wode', 'huaxiaoyou', 'lalala', 'mingzi'}
#,因为是随机删除,所以结果不唯一

remove删:按照指定的元素删除

set1 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua'}
set1.remove('lalala')  # 按元素
print(set1)
#最后的结果为:{'mingzi', 'huaxiaoyou', 'wode', 'jiaoxiaohua'}

clean删:清空集合

set1 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua'}
set1.clear()
print(set1)  #set()
#最后的结果为:set()

del删:删掉集合

set1 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua'}
del set1#最后的结果为什么都没有
#print(set1)  如果加上这行代码运行会报错

迭代查询set(可以更改的集合):

set1 = {'huaxiaoyou','lalala','wode','mingzi','jiaoxiaohua'}
for i in set1:
     print(i)
  """
 最后的结果为:
 wode
jiaoxiaohua
huaxiaoyou
mingzi
lalala
"""

迭代查询frozenset(不可更改的集合、冻结集合):

s = frozenset('abcde')
print(s,type(s))
for i in s:
     print(i)
"""
   最后的结果为:
frozenset({'e', 'c', 'b', 'a', 'd'}) <class 'frozenset'>
e
c
b
a
d
"""
   

交集查询:两集合之间共有的元素集合

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
set3 = set1 & set2
print(set3)  # &方法求交集
print(set1.intersection(set2))  # intersection方法求交集
#最后的结果为:{4,5}
#{4,5}

并集查询:两集合中所有的元素集合

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)  #   |方法求并
print(set2.union(set1))  # union方法求并
#最后结果为: {1, 2, 3, 4, 5, 6, 7}
#            {1, 2, 3, 4, 5, 6, 7}

差集查询:两集合中不同的元素集合

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set2 - set1)  # 方法1
#set1独有的
print(set1.difference(set2))  # 方法2
#最后结果:{8,6,7}
#{1, 2, 3}

对称差集查询:( ^或set1.symmetric_difference(set2)两种方法)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}

子集:(< 或 <= 或issubset三种方法)

set1 = {1,2,3,}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set1))  # 这两个相同,都是说明set1是set2子集。
#最后的结果为:True
             #True     布尔值

父集:(> 或>= 或issuperset三种方法)

set1 = {1,2,3,}
set2 = {1,2,3,4,5,6}
print(set2 > set1)
print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1父集。
#最后的结果为:True
             #True
  1. 去重

结果为集合的去重

li = [1,2,33,33,2,1,4,5,6,6]
set1 = set(li)
print(set1)
#最后的结果:{1, 2, 33, 4, 5, 6}

结果为列表的去重(set---->list,集合转换为列表)

li = [1,2,33,33,2,1,4,5,6,6]
set1 = set(li)
li = list(set1)
print(li)
#最后结果为:[1, 2, 33, 4, 5, 6]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值