集合是什么——set
集合是不重复元素的无序集,它兼具了列表和字典的一些性质。集合类似字典的特点:用花括号“{}”来定义,其元素是非序列类型的数据,也就是没有序列,并且集合中的元素不可重复,也必须是不变对象,类似于字典中的键。集合的内部结构与字典很相似,区别是“只有键没有值”。另一方面,集合也具有一些列表的特点:持有一系列元素,并且可原处修改。由于集合是无序的,不记录元素位置或者插入点,因此不支持索引、切片或其他类序列的操作。
集合的创建
(1)集合里面的元素是不可重复的
输入
set = {1,2,3,1,2,3,4}
print(set,type(set))
输出
{1, 2, 3, 4} <class 'set'>
(2)如何定义一个空集合
输入
s2 = {}
print(s2)
print(type(s2))
s3 = set([])
print(s3)
print(type(s3))
输出
{}
<class 'dict'>
set()
<class 'set'>
一定要注意空集合的定义方式
(3)集合应用
将列表中的重复元素去掉
输入
cai = [1,2,3,1,2,3]
print(type(cai))
print(list(set(cai)))
输出
<class 'list'>
[1, 2, 3]
(4)由字符串创建:用函数 set(str) 将str中的字符拆开以形成集合
输入
s1 = set('hello python')
print(s1)
print(type(s1))
输出
{'l', 'e', 'y', ' ', 'n', 't', 'o', 'h', 'p'}
<class 'set'>
(5)列表或元组创建
输入
s1 = set([1,‘name’,2,‘age’,‘hobby’])
print(s1,type(s1))
s2 = set((1,2,3))
print(s2,type(s2))
输出
{1, 2, ‘name’, ‘age’, ‘hobby’} <class ‘set’>
{1, 2, 3} <class ‘set’>
集合的特性
集合只支持成员操作符号 for循环
(1)成员操作符
输入
cai = {1,2,3,1,2,3}
print(1 in cai)
print(4 in cai)
输出
True
False
(2)for循环
输入
cai = {1,2,3,1,2,3}
for i in cai:
print(i)
输出
1
2
3
集合的增加,更新和删除
(1)集合的增加——set.add(x)
输入
s = {6,7,8,9}
s.add(1)
print(s)
输出
{1, 6, 7, 8, 9}
(2)集合的更新——set.update
输入
s = {6,7,8,9}
s.update({5,3,2})
print(s)
输出
{1, 2, 3, 5, 6, 7, 8, 9}
(3)集合的删除
第一种方式:set.pop() ——删除并返回集合中的任意元素
输入
s = {6,7,8,9}
item = s.pop()
print(s)
print(item)
输出
{9, 6, 7}
8
第二种方式:set.remove(x) ——删除集合中的元素x,如果x不存在则报错,返回值为none
输入
s = {6,7,8,9}
item = s.remove(6)
print(s)
print(item)
输出
{8, 9, 7}
None
第三种方式:set.discard(x) ——删除集合中的元素x,如果x不存在则什么也不做,返回值为none
输入
s = {6,7,8,9}
item = s.discard(6)
item1 =s.discard(1)
print(s)
print(item)
print(item1)
输出
{8, 9, 7}
None
None
第四种方式:set.clear() ——清空集合中的所有元素
输入
s = {6,7,8,9}
item = s.clear()
print(s,type(s))
print(item)
输出
set() <class 'set'>
None
集合的运算(交集 并集 差集)
(1)交集——intersection或者&
输入
s1 = {1,2,3}
s2 = {2,3,4}
print('交集:',s1.intersection(s2))
print('交集:',s1 & s2)
输出
交集: {2, 3}
交集: {2, 3}
(2)并集——union和|
输入
s1 = {1,2,3}
s2 = {2,3,4}
print('并集:',s1.union(s2))
print('并集:',s1 | s2)
输出
并集: {1, 2, 3, 4}
并集: {1, 2, 3, 4}
(3)差集——difference
输入
s1 = {1,2,3}
s2 = {2,3,4}
print('差集:',s1.difference(s2)) #s1 - (s1 & s2)
print('差集:',s2.difference(s1))
输出
差集: {1}
差集: {4}
(4)返回值为布尔值的集合运算
输入
s3 = {1,2}
s4 = {1,2,3}
##s3的元素是否包含在s4中
print(s4.issuperset(s3))
##s3是否是s4的子集
print(s3.issubset(s4))
##s4中是否包含s3的元素,不包含返回 True,否则返回 False。
print(s3.isdisjoint(s4))
输出
True
True
False
本文介绍了Python中的集合数据类型,包括集合的定义、创建方法、特性、元素的增删改查以及交集、并集、差集等集合运算。通过实例展示了如何使用set()函数、成员操作符、update()、add()、remove()、discard()和clear()等方法,以及如何进行集合运算。
1148

被折叠的 条评论
为什么被折叠?



