Python集合

集合

集合是无序的,不重复的且不可以更改的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点:

  • 去重,把一个列表变成集合,就自动去重了。
  • 关系测试,测试两组数据之前的交集、差集、并集等关系。

集合的创建

创建一个空的集合

这里需要注意,我们不可以直接用花括号"{}"

>>> st = set()
>>> st
set()
>>> st1 = {}
>>> type(st),type(st1)
(<class 'set'>, <class 'dict'>)

多元素的集合创建

>>> st = {"a","b","c","d","e"}
>>> st,type(st)
({'c', 'a', 'b', 'e', 'd'}, <class 'set'>)
>>>

集合的强转

>>> li = [1,"a","n","University"]
>>> st_li = set(li)
>>> st_li,type(st_li)
({1, 'a', 'n', 'University'}, <class 'set'>)

集合的基本操作

  • 无序,不可以查找

  • set.add(x)

    将元素x添加到集合s中,如果元素已存在,则不进行任何操作。

  • set.updat

    x 可以有多个,用逗号分开(随机位置添加)。

>>> st = {1,2,"Hunan","Yingxiao","College"}
>>> st.add("Comput Science")
>>> st
{1, 2, 'College', 'Yingxiao', 'Hunan', 'Comput Science'}
>>> st.update("湖南","长沙")
>>> st
{1, 2, '南', '沙', '湖', 'College', 'Yingxiao', 'Hunan', '长', 'Comput Science'}

  • set.remove(x)

    将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。

  • set.discard(x)

    将元素 x 从集合 s 中移除,如果元素不存在,不会发生错误。

  • set.pop()

    随机删除,排序最小的一个元素

>>> st = {1,2,"Hunan","Yingxiao","College"}
>>> st.remove(2)
>>> st
{1, 'College', 'Yingxiao', 'Hunan'}

>>> st.discard("AAA")
>>> st
{1, 'College', 'Yingxiao', 'Hunan'}

>>> st.pop()
1
>>> st
{'College', 'Yingxiao', 'Hunan'}
  • set.clear()

    清空所有内容

  • del set名

    删除变量

>>> st = {1,2,3}
>>> st.clear()
>>> st
set()
>>> st = {1,2,3}
>>> del st
>>> st
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'st' is not defined
>>>

  • 不可能更改

遍历

>>> st = {1,2,"Hunan","Yingxiao","College"}
>>> for i in st:
...     print(i,end = " ")
...
1 2 Yingxiao Hunan College >>>
>>> st = {1,2,"Hunan","Yingxiao","College"}
>>> for index,value in enumerate(st):
...     print(index,value)
...
0 1
1 2
2 Yingxiao
3 Hunan
4 College
>>>

子集

  • issubest()

    判断指定集合是否为该方法参数集合的子集。

>>> a = set("abcd")
>>> b = set("cdef")
>>> c = set("ab")
>>> a,b,c
({'c', 'd', 'a', 'b'}, {'c', 'e', 'f', 'd'}, {'a', 'b'})
>>> c.issubset(a)
True
>>> c<a
True
>>> c<b
False
>>>

交集

  • intersection()

    返回集合的交集

>>> a = set("abcd")
>>> b = set("cdef")
>>> a.intersection(b)
{'c', 'd'}
>>> a & b
{'c', 'd'}
>>>

并集

  • union()

    返回两个集合的并集

>>> a = set("abcd")
>>> b = set("cdef")
>>> a.union(b)
{'f', 'd', 'c', 'a', 'e', 'b'}
>>> a|b
{'f', 'd', 'c', 'a', 'e', 'b'}
>>>
  • difference()

    返回集合的差集

>>> a = set("abcd")
>>> b = set("cdef")
>>> a.difference(b)
{'a', 'b'}
>>> a-b
{'a', 'b'}
>>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值