集合的简介
- 集合是一个无序、不重复的序列
- 它的基本用法包括成员检测和消除重复元素
- 集合对象也支持像 联合,交集,差集,对称差分等数学运算
- 集合中所有的元素放在 {} 中间,并用逗号分开
集合的例子
这里会有个重点知识
1
2
3
4
5
6
7
8
9
10
11
|
# 声明 basket = { 'apple' , 'orange' , 'apple' , 'pear' , 'orange' , 'banana' } print (basket) set_ = { 1 , 1 , 1 , 1 , 2 } print (set_) # 输出结果 { 'orange' , 'pear' , 'banana' , 'apple' } { 1 , 2 } |
自动去重了,每个元素只保留一个,且是无序的
再来看一个例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
set_ = {{ 1 , }, { 1 , }} print (set_) set_ = {[ 1 , ], [ 2 , ]} print (set_) # 输出结果 set_ = {{ 1 , }, { 1 , }} TypeError: unhashable type : 'set' set_ = {[ 1 , ], [ 2 , ]} TypeError: unhashable type : 'list' |
为什么报错?
重点:因为 set 集合只能包含不可变对象元素,而列表、集合本身都是可变对象,所以会报错
集合和列表的区别
列表中的元素允许重复,集合中的元素不允许重复
列表是有序的,提供了索引操作,集合是无序的,没有索引操作
1
2
3
4
5
6
7
|
set_ = { 1 , 1 , 1 , 1 , 2 } set [ 1 ] # 输出结果 set [ 1 ] TypeError: 'type' object is not subscriptable |
提示该类型不能下标
特殊集合
如何创建一个空集合
1
2
3
4
5
6
|
set_ = {} print (set_, type (set_)) # 输出结果 {} < class 'dict' > |
不可以直接 { },这样默认是一个空字典哦
正确写法
1
2
3
4
5
6
|
set_ = set () print (set_, type (set_)) # 输出结果 set () < class 'set' > |
常见运算操作
运算符 |
合并多个集合
1
2
3
4
|
>>> { 1 , 2 } | { 3 , 4 } { 1 , 2 , 3 , 4 } >>> { 1 , 2 } | { 3 , 4 } | { 5 , 6 } { 1 , 2 , 3 , 4 , 5 , 6 } |
运算符 -
从集合中删除元素
1
2
|
>>> { 1 , 2 , 3 , 4 } - { 3 , 4 , 5 , 6 } { 1 , 2 } |
运算符 &
取交集,返回两个集合都包含的元素
1
2
|
>>> { 1 , 2 , 3 } & { 3 , 4 , 5 } { 3 } |
运算符 ^
取差集
1
2
|
>>> { 1 , 2 , 3 } ^ { 3 , 4 , 5 } { 1 , 2 , 4 , 5 } |
关键字 in
检查集合中是否包含指定元素
1
2
3
4
|
>>> 'polo' in { 'www' , 'polo' , 'com' } True >>> 'yy' in { 'www' , 'yyy' , 'com' } False |
常见函数
len(set)
获取集合的长度
1
2
3
4
|
>>> len ({ 1 , 2 , 3 }) 3 >>> len ({ 1 , 2 , 3 , 4 }) 4 |
max(set)
获取集合中最大的元素
1
2
3
4
|
>>> max ({ 1 , 2 }) 2 >>> max ({ 1 , 3 , 2 }) 3 |
min(set)
获取集合中最小的元素
1
2
3
4
|
>>> min ({ 1 , 2 }) 1 >>> min ({ 1 , 3 , 2 }) 1 |
集合常见方法
add(item)
向集合中新增一个元素 item
1
2
3
4
5
6
|
# add set_ = { 1 , 2 , 3 } set_.add( 1 ) set_.add( 4 ) set_.add( "5" ) print (set_) |
# 输出结果
{1, 2, 3, 4, '5'}
remove(item)
从集合中删除指定元素 item
1
2
3
4
5
6
7
8
|
# remove set_ = { 1 , 2 , 3 } set_.remove( 2 ) print (set_) # 输出结果 { 1 , 3 } |
clear()
移除集合中的所有元素
1
2
3
4
5
6
7
8
9
10
|
# remove set_ = { 1 , 2 , 3 } print (set_) set_.clear() print (set_) # 输出结果 { 1 , 2 , 3 } set () |
pop()
移除集合首位元素,并返回该元素值
1
2
3
4
5
6
7
8
9
10
11
|
# pop a = { 1 , 2 , 3 , 4 } print (a.pop()) print (a.pop()) print (a) # 输出结果 1 2 { 3 , 4 } |
difference()
从源集合中找出目标集合中没有的元素集合
1
2
3
4
5
6
7
8
|
# difference a = { 1 , 2 , 3 , 4 } b = { 2 , 3 , 5 } print (a.difference(b)) # 输出结果 { 1 , 4 } |
union()
返回两个集合的并集
1
2
3
4
5
6
7
8
|
# union set1 = { 1 , 2 , 3 } set2 = { 3 , 4 , 5 } print (set1.union(set2)) # 输出结果 { 1 , 2 , 3 , 4 , 5 } |
intersection()
返回两个集合的交集
1
2
3
4
5
6
7
8
|
# intersection set1 = { 1 , 2 , 3 } set2 = { 3 , 4 , 5 } print (set1.intersection(set2)) # 输出结果 { 3 } |
issubset()
判断指定集合是否为子集
1
2
3
4
5
6
7
8
|
# issubset set1 = { 1 , 2 } set2 = { 1 , 2 , 3 } print (set1.issubset(set2)) # 输出结果 True |
issuperset()
判断指定集合是否为超集
1
2
3
4
5
6
7
8
|
# issuperset set1 = { 1 , 2 , 3 } set2 = { 1 , 2 } print (set1.issuperset(set2)) # 输出结果 True |
集合总结
因为集合是不可重复的,所以可以利用它来处理一些需要避免重复插入的场景,比如为了避免某一学生的信息重复录入
以上就是Python中基础数据类型 set集合知识点总结的详细内容,更多关于Python基础数据类型 set 集合的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/poloyy/p/15083079.html