Python-集合学习笔记(完)
Posted Aspirantlu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python-集合学习笔记(完)相关的知识,希望对你有一定的参考价值。
文章目录
集合
集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。
- 无序,用括起来,不包含重复元素。
- 集合中的元素是不可变的数据,但集合本身是可变的数据类型。
- 集合不能进行改的操作,但可以变相改值(先删除后增加)。
集合的创建
方式一:set
s1 = set(1, 'lucy', False, 'haha')
print(s1)
方式二:直接创建(建议使用)
s1 = 1, 'lucy', False, 'haha'
print(s1) # 'lucy', 1, 'haha', False
注意:如果上述代码False改为True,由于True和1重复,结果只保留1
s1 = 1, 'lucy', True, 'haha'
print(s1) # 1, 'haha', 'lucy'
空集合
1. 空字典
d =
print(type(d)) # <class 'dict'>
2. 空集合
s = set()
print(type(s)) # <class 'set'>
列表去重
li = [1, 2, 4, 3, 3, 3, 5, 6, 6, 6]
set1 = set(li)
new_li = list(set1)
print(new_li) # [1, 2, 3, 4, 5, 6]
集合元素的增加
方式一:add(增加一个元素)
set1 = '蒙犽', '李白', '韩信'
set1.add('刘备')
方式二:update(迭代着增加)
set1 = '蒙犽', '李白', '韩信'
set1.update(['刘备', '不知火舞', '刘备'])
print(set1)
集合元素的删除
方式一:remove(按照元素删除)
# 指定元素不存在会报错
set1 = '蒙犽', '李白', '韩信'
set1.remove('李白')
print(set1) # '蒙犽', '韩信'
方式二:pop(随机删除一个元素)
set1 = '蒙犽', '李白', '韩信'
set1.pop()
print(set1) # '蒙犽', '李白'
方式三:clear(清空集合)
set1 = '蒙犽', '李白', '韩信'
set1.clear()
print(set1) # set()
方式四:del(删除集合)
set1 = '蒙犽', '李白', '韩信'
del set1
方式五:discard(移除指定的集合元素)
# 如果元素不存在,则不执行任何操作
set1 = 2, 5, 1, 7, 8
set1.discard(5)
print(set1) # 1, 2, 7, 8
set1 = 2, 5, 1, 7, 8
set1.discard(9)
print(set1) # 1, 2, 5, 7, 8
集合的变相改值
# 将集合中'李白'改为'lucy'
set1 = '蒙犽', '李白', '韩信'
set1.remove('李白')
set1.add('lucy')
print(set1) # '韩信', '蒙犽', 'lucy'
集合的运算
1. 交集
符号:&
或者 intersection()
set1 = 1, 2, 3, 4, 5
set2 = 4, 5, 6, 7, 8
print(set1 & set2) # 4, 5
print(set1.intersection(set2)) # 4, 5
2. 并集
符号:|
或者 union()
set1 = 1, 2, 3, 4, 5
set2 = 4, 5, 6, 7, 8
print(set1 | set2) # 1, 2, 3, 4, 5, 6, 7, 8
print(set1.union(set2)) # 1, 2, 3, 4, 5, 6, 7, 8
3. 差集
符号:-
或者 difference()
set1 = 1, 2, 3, 4, 5
set2 = 4, 5, 6, 7, 8
print(set1 - set2) # 1, 2, 3
print(set1.difference(set2)) # 1, 2, 3
4. 反交集
符号:^
或者 symmetric_difference()
set1 = 1, 2, 3, 4, 5
set2 = 4, 5, 6, 7, 8
print(set1 ^ set2) # 1, 2, 3, 6, 7, 8
print(set1.symmetric_difference(set2)) # 1, 2, 3, 6, 7, 8
5. 子集与超集
- 子集(符号:
<
或者issubset()
)
# set1 包含于 set2
set1 = 1, 2, 3
set2 = 1, 2, 3, 4, 5, 6
print(set1 < set2) # True
print(set1.issubset(set2)) # True
- 超集(符号:
>
或者issuperset()
)
# set2 包含 set1
set1 = 1, 2, 3
set2 = 1, 2, 3, 4, 5, 6
print(set2 > set1) # True
print(set2.issuperset(set1)) # True
以上是关于Python-集合学习笔记(完)的主要内容,如果未能解决你的问题,请参考以下文章