python集合知识点总结

1.集合的基本概念及创建

集合是python的一个基本数据类型,集合中的元素是不重复的,无序的,里面的元素必须是可hash的(int,tuple,str,bool)。

set就是dict类型的数据但是不保存value,只保存key。set也用{}表示。

创建一个空集合必须用set(),而不是用{},因为dict是用{}来创建。

s = {'apple','banana','orange','apple'}
print(s)
# 当使用print()函数打印输出时,会自动将集合中重复的元素去除,且每次打印返回的顺序并不和初始的一致。
#{'orange', 'apple', 'banana'}

2.集合的增删改查

集合本身是可变的数据类型,不可哈希,所以有增删改查的操作。

(1)增加元素

add() 方法用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作
s = {'apple','banana','orange','apple'}
s.add('pear')
print(s)
#{'apple', 'pear', 'orange', 'banana'}

(2)删除元素

s.pop()  s.remove()  
s.clear()  与列表是相同的  ,清空集合以后返回的是空集合 set()。与字典区分
discard()方法用于移除指定的集合元素。该方法不同于 remove() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。
注意:使用完del()如再用print()函数打印时,会报错。NameError: name 'fruit' is not defined.,意为fruit未被定义,说明已删除。 
fruit = {'apple','banana','orange','apple'}
del(fruit)
print(fruit)
#NameError: name 's' is not defined

(3)修改元素

集合是无序的,所以没有索引,所以无法直接进行修改

(4)查询元素

集合是一个可迭代对象,因此可以使用for循环

(5)常用操作

交集:
两个集合中共有的元素  print(s1 & s2) 
set.intersection(set1, set2 ... ) ,set1必需。要在其中检索相同项目的集合。set2可选。其他需要在其中检索相同项目的集合。您可以比较任意多的集合。集合之间由逗号分隔。
并集:
union() 方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。
set.union(set1, set2 ...) set1必需,set2可选
也可以使用 update() 方法将一个集合中的所有项目插入另一个集合中。与列表的更新升级一致
差集:
print(s1 - s2)
difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。
difference_update() 方法用于移除两个集合中都存在的元素。

difference_update() 方法与 difference() 方法的区别在于 difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。
反交集:  
print(s1 ^ s2)
symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
symmetric_difference_update() 方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

symmetric_difference()方法与symmetric_difference_update() 的区别在symmetric_difference()返回一个新集合而symmetric_difference_update() 方法是直接在原集合进行,没有返回值
子集:print(s1 < s2)
issubset() 方法用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返False。
issuperset() 方法用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。

目录

1.集合的基本概念及创建

2.集合的增删改查

(1)增加元素

(2)删除元素

(3)修改元素

(4)查询元素

(5)常用操作


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值