Python 中的集合类似于数学中的集合概念,它是一组无序、不可重复数据的组合。集合用{ ...}创建,某种程度上可以把集合看作是没有值的字典。集合是Python里面非常重要的数据类型,其中的方法总共有17个,数量掌握这些方法,对数据的处理效率会大大提高,特别是在计算字符串长度,交集并集等,非常有用现在分享给大家。
01、add() 描述:add() 方法用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。注意:集合中只能包含可哈希的对象,即 list,dict 都不能嵌入到集合 语法:set.add(elmnt) 参数:elmnt -- 必需,要添加的元素。
02、clear() 描述:clear() 方法用于移除集合中的所有元素。 语法:set.clear() 参数:无。
03、copy() 描述:copy() 方法用于复制一个集合,会重新生成一个 语法:set.copy() 参数:无
04、difference() 描述:difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。也可以用set1 - set2 进行差运算,set1 减去 set1&set2 部分 语法:set.difference(set) 参数:set -- 必需,用于计算差集的集合
05、difference_update() 描述:difference_update() 方法用于移除两个集合中都存在的元素difference_update() 方法与 difference() 方法的区别在于 difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。 语法:set.difference_update(set) 参数:set -- 必需,用于计算差集的集合
06、discard() 描述:discard() 方法用于移除指定的集合元素。该方法不同于 remove() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。 语法:set.discard(value) 参数:value -- 必需,要移除的元素
07、intersection() 描述:intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。set1 & set2 #交运算 语法:set.intersection(set1, set2 ...etc) 参数:
08、intersection_update() 描述:intersection_update() 方法用于获取两个或更多集合中都重叠的元素,即计算交集。intersection_update() 方法不同于 intersection() 方法,因为 intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。 语法:set.intersection_update(set1,set2 ...etc) 参数:
09、isdisjoint() 描述:isdisjoint() 方法用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 语法:set.isdisjoint(set) 参数:set -- 必需,要比较的集合 x = {'apple', 'banana', 'cherry'} y = {'google', 'runoob', 'facebook'} z = x.isdisjoint(y) print(z) True 10、issubset() 描述:issubset() 判断 set1 是否是 set2 的子集,如果是则返回 True,否则返回 False。 语法:set.issubset(set) 参数:set -- 必需,要比查找的集合 x = {'a', 'b', 'c'} y = {'f', 'e', 'd', 'c', 'b', 'a'} z = x.issubset(y) print(z) True
x = {'a', 'b', 'c'} y = {'f', 'e', 'd', 'c', 'b'} z = x.issubset(y) print(z) False 11、issuperset() 描述:issuperset() 方法用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。 语法:set.issuperset(set) 参数:set -- 必需,要比查找的集合 x = {'f', 'e', 'd', 'c', 'b', 'a'} y = {'a', 'b', 'c'} z = x.issuperset(y) print(z) True
x = {'f', 'e', 'd', 'c', 'b'} y = {'a', 'b', 'c'} z = x.issuperset(y) print(z) False 12、pop() 描述:pop() 方法用于随机移除一个元素。 语法:set.pop() 参数: set1 = {'周扬青','徐怀钰','Makiyo','Selina'} set1.pop() '徐怀钰'
set1 {'Makiyo', 'Selina', '周扬青'} 13、remove() 描述:remove() 方法用于移除集合中的指定元素。该方法不同于 discard() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。 语法:set.remove(item) 参数:item -- 要移除的元素 #构建一个罗志祥历任女友的集合 set1 = {'周扬青','徐怀钰','Makiyo','Selina'} #现在我们拿走一个看看 set1.remove('徐怀钰') set1 {'Makiyo', 'Selina', '周扬青'}#人家还剩3个,真是
#再拿走一个集合里面没有的,发现并没有报错 set1.discard('女助理') set1 {'Makiyo', 'Selina', '周扬青'}
#用remove方法试试,发现就报错了 set1.remove('女助理') KeyError: ' 14、symmetric_difference() 描述:symmetric_difference() 方法返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。 语法:set.symmetric_difference(set) 参数:set -- 集合 set1 = {'周扬青','徐怀钰','Makiyo','Selina'}#建一个罗志祥的女友集合
set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合 set1.symmetric_difference(set2) {'Makiyo', 'Selina', '乔碧萝', '徐怀钰', '罗玉凤'} 15、symmetric_difference_update() 描述:symmetric_difference_update() 方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 语法:set.symmetric_difference_update(set) 参数:set -- 要检测的集合 set1 = {'周扬青','徐怀钰','Makiyo','Selina'} #建一个罗志祥的女友集合 set2 = {'周扬青','徐怀钰','罗玉凤','乔碧萝'}#再建一个罗志祥的女友集合 set1.symmetric_difference_update(set2) print(set1) {'Selina', '乔碧萝', 'Makiyo', '罗玉凤'}
16、union() 描述:union() 取并集,效果等同于 | ,重复元素只会出现一次,但是括号里可以是 list,tuple,其他 , 甚至是 dict 语法:set.union(set1, set2...) 参数:
示例:
17、update() 描述:update() 方法用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。 语法:set.update(set) 参数:set -- 必需,可以是元素或集合
|
|