pytho 集合{}的基本操作和基本运算

本文介绍了Python集合的基本概念和操作,包括集合的无序、唯一性特点,以及创建、查询、增加、删除等操作。重点讲解了集合的运算,如子集、交集、并集和差集的计算,提供了实现这些操作的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合

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

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

集合的创建

创建一个空的集合

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

>>> st=set()
>>> st
set()
>>> st1={}
>>> type(st),type(st1)
(<class 'set'>, <class 'dict'>)
多元素的集合创建
>>> st={"a","b","c","d","e"}
>>> st.type(st)
>>> st,type(st)
({'c', 'd', 'a', 'e', 'b'}, <class 'set'>)
集合的强转
>>> li=[1,"a","n","University"]
>>> st_li=set(li)
>>> st_li,type(st_li) #逗号连接的两个变量,返回元组
({1, 'a', 'University', 'n'}, <class 'set'>)
>>>
>>> str="Universitysity"
>>> st_str=set(str)
>>> st_str,type(st_str)
({'r', 'U', 's', 'y', 'e', 'i', 'v', 'n', 't'}, <class 'set'>)
>>>
>>> dic={"a":1,"b":2,"c":3,"d":4}
>>> st_dic=set(dic)
>>> st_dic,type(st_dic)
({'c', 'a', 'd', 'b'}, <class 'set'>)
>>>
>>> tp=(1,2,3,4,5)
>>> st_tp=set(tp)
>>> st_tp,type(st_tp)
({1, 2, 3, 4, 5}, <class 'set'>)
>>>
集合的基本操作
  • 无序,不可查找
>>> st={1,2,"Hunan","Yingxiao","Collge"}
>>> st[2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
>>>
  • set.add()
  • set.update()
>>> st={1,2,"Hunan","Yingxiao","College"}
>>> st.add("Computer Science")
>>> st
{1, 2, 'Computer Science', 'College', 'Hunan', 'Yingxiao'}
>>> st.update("zengzeng","zengzengzengzeng")
>>> st
{1, 2, 'g', 'Computer Science', 'College', 'e', 'Hunan', 'z', 'n', 'Yingxiao'}
>>>
  • set.pop()
  • set.discard()
  • set.remove()
>>> st={1,2,"Hunan","Yingxiao","College"}
>>> st.pop()#删除排序最小的一个元素
1
>>> st
{2, 'College', 'Hunan', 'Yingxiao'}

>>> st={1,2,"Hunan","Yingxiao","College"}
>>> st.discard(2)#移除元素
>>> st
{1, 'College', 'Hunan', 'Yingxiao'}
>>> st.discard("HUNAN")#如果元素不存在,不会报错,不做任何操作
>>> st
{1, 'College', 'Hunan', 'Yingxiao'}

>>> st={1,2,"Hunan","Yingxiao","College"}
>>> st.remove(2)
>>> st
{1, 'College', 'Hunan', 'Yingxiao'}
>>> st.remove("HUNAN")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'HUNAN'
改,不可更改
>>>st={1,2,"Hunan","Yingxiao","College"}
>>> st[0]="Hunan"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support item assignment
>>>
遍历
>>> st={1,2,"Hunan","Yingxiao","College"}
>>> for i in st:
...     print(i,end = " ")
...
1 2 Yingxiao College Hunan >>>
>>> st={1,2,"Hunan","Yingxiao","College"}
>>> for index,value in enumerate(st):
...     print(index,value)
...
0 1
1 2
2 Yingxiao
3 College
4 Hunan
>>>
比较
集合的运算
子集
>>> a=set("abcd")
>>> b=set("cdef")
>>> c=set("ab")
>>> a,b,c
({'d', 'b', 'c', 'a'}, {'d', 'f', 'e', 'c'}, {'b', 'a'})
>>> c.issubset(a)
True
>>> c<a
True
>>> c<b
False
交集
>>> a=set("abcd")
>>> b=set("cdef")
>>> a.intersection(b)
{'d', 'c'}
>>> a&b
{'d', 'c'}
>>>
并集
>>> a=set("abcd")
>>> b=set("cdef")
>>> a.union(b)
{'c', 'f', 'a', 'b', 'd', 'e'}
>>> a|b
{'c', 'f', 'a', 'b', 'd', 'e'}
>>>
差集
>>> a=set("abcd")
>>> b=set("cdef")
>>> a.difference(b)
{'b', 'a'}
>>> a-b
{'b', 'a'}
>>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值