python集合表达式及方法

电子说

1.3w人已加入

描述

python数字的集合(set)类型,是无序集合,集合中的元素(项)不会重复,不管添加多少个相同元素(项),只会保存1次。

python集合是可迭代对象。

1.1 set()和{}

用法

set() -> new empty set object
set(iterable) -> new set object
{元素项}

描述

python的set()函数用于创建集合对象。

入参

set()不送入参,创建空集合。

iterable:送迭代对象,比如字符串、元组等。创建非空集合。

表达式{元素项},创建非空集合。

注意

集合元素无序,且唯一。

无序:生成的集合后的元素顺序与定义集合时的顺序不一致。

唯一:多次添加重复的元素,只会保留一次。

示例

>>> n=set();x=set('梯阅线条');y=set('梯阅线条软件测试开发');z={'梯','阅','线条'}
>>> n
set()
>>> x
{'梯', '阅', '线', '条'}
>>> y
{'件', '软', '发', '梯', '阅', '试', '条', '线', '开', '测'}
>>> z
{'梯', '阅', '线条'}
#集合元素重复添加,只保存一次
>>> u=set('梯阅线条梯阅线条python集合')
>>> u
{'t', 'h', '梯', '阅', 'p', '合', '条', 'o', '线', 'n', 'y', '集'}

1.2 集合表达式

序号 表达式 描述
1 ‘s’ in set 判断元素是否属于集合。‘s’在集合set里返回True,否则返回False
2 xy,x>=y,x==y,x!=y 集合子集和超集值相等性操作符
3 x y
4 x ^ y 集合对称差,取属于集合x且不属于集合y,或属于集合y且不属于集合x的元素。即集合交集以外的元素。
5 x & y,x.intersection(y) 集合交集,取集合x和集合y都有的元素
7 x – y 集合差集,取在集合x,不在集合y的元素

示例

>>> s1=set('123')
>>> s2=set('345')
>>> s1
{'3', '2', '1'}
>>> s2
{'5', '3', '4'}
>>> s1^s2
{'2', '5', '1', '4'}
>>> s1&s2
{'3'}
>>> s1|s2
{'5', '3', '1', '2', '4'}
>>> s1-s2
{'2', '1'}
>>> 1 in s1
False
>>> '1' in s1
True
>>> s1 < s2
False
>>> s1 > s2
False
>>> s1 != s2
True

1.3 集合方法

1.3.1 intersection()

用法

x.intersection(y)

描述

python集合intersection()方法,用于求集合交集。

x.intersection(y),集合x与集合y的交集,对应表达式x&y。

入参

y:集合

出参

返回交集集合

示例

>>> s1=set('123')
>>> s2=set('345')
>>> s1
{'3', '2', '1'}
>>> s2
{'5', '3', '4'}
>>> s1.intersection(s2)
{'3'}

1.3.2 add()

用法

x.add(e)

描述

python集合add()方法,向集合添加元素。

x.add(e),向集合x添加元素e,如果存在则不变,否则新增。

入参

e:集合元素。

出参

改变原始集合。

示例

>>> s1
{'3', '2', '1'}
>>> s1.add('6')
>>> s1
{'6', '3', '2', '1'}

1.3.3 update()

用法

x.update(set)

描述

python集合update()方法,向集合添加集合或元素。

x.update(set) ,向集合x添加集合set,或者添加元素。

入参

set:集合或元素。

出参

改变原始集合。

示例

>>> s1
{'6', '3', '2', '1'}
>>> s1.update(set('127'))
>>> s1
{'7', '6', '3', '1', '2'}

1.3.4 remove()

用法

x.remove(e)

描述

python集合remove()方法,从集合删除指定元素。

x.remove(e),从集合x删除元素e。如果元素e不存在,则报错。

入参

e:要删除的元素

出参

改变原始集合。

示例

>>> s1
{'7', '6', '3', '1', '2'}
>>> s1.remove('7')
>>> s1
{'6', '3', '1', '2'}
>>> s1.remove('7')
Traceback (most recent call last):
 File ", line 1, in

1.3.5 discard()

用法

x.discard(e)

描述

python集合discard()方法,从集合删除指定元素。

x.discard(e),从集合x删除元素e。如果元素e不存在,不会报错。

入参

e:要删除的元素

出参

改变原始集合。

示例

>>> s1
{'6', '3', '1', '2'}
>>> s1.discard('6')
>>> s1
{'3', '1', '2'}
>>> s1.discard('6')
>>> s1
{'3', '1', '2'}

1.3.6 union()

用法

s1.union(s2)

描述

python集合union()方法,用于求集合的并集。

s1.union(s2),求集合s1和s2的并集。对应表达式s1|s2

入参

s2:集合

出参

返回新的集合

示例

>>> s1
{'3', '1', '2'}
>>> s2
{'5', '3', '4'}
>>> s1.union(s2)
{'5', '3', '1', '2', '4'}

1.3.7 issubset()

用法

s1.issubset(s2)

描述

pythhon集合issubset()方法,用于判断集合关系。

s1.issubset(s2),s1是s2的子集(s1的全部元素都在s2集合),则返回True,否则返回False。

入参

s2:父集合

出参

s1是s2的子集,返回True,否则返回False。

示例

>>> s1
{'3', '1', '2'}
>>> s2
{'2', '5', '3', '1', '4'}
>>> s1.issubset(s2)
True
>>> s2.issubset(s1)
False

1.4 集合不可变和冻结集合

python集合的元素只能是不可变对象,比如数字、字符串、元组等,不能为列表、字典、集合等。如果集合要嵌入集合,则要用frozenset方法。

示例

>>> s1
{'3', '1', '2'}
>>> s1.add(5)
>>> s1
{'3', 5, '1', '2'}
>>> s1.add([6,7])
Traceback (most recent call last):
 File ", line 1, in

1.5 集合解析

集合解析和列表解析类似,只需将循环表达式写在集合大括号{}里面。

示例

>>> {c*2 for c in '梯阅线条'}
{'线线', '梯梯', '条条', '阅阅'}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分