集合
可以存放一堆数据,相当于只有键没有值的字典 (键则是集合的数据)。
特点
- 里面的元素不可变,不能存储list、dict。
- 可以存字符串、数字、元组等不可变类型。
- 自带去重,在集合中不会存储重复的元素。
- 元素是无序的。
去重和关系运算(交并补)
- 创建集合:{ },不是k-v结构
- 集合名 = {key,....}
- 集合名 = set(可迭代对象)
a={1,2,3,4,3,"_犬少",(1,2,5)}
b=[1,4,2,3,4,3,2,1,3]
c=set(b)
print(a)
print(c)
# {1, 2, 3, 4, '_犬少', (1, 2, 5)}
# {1, 2, 3, 4}
列表去重
a = [1,2,3,2,1,"dss","_犬少","dss"]
print(a)
b = set(a)
print(b)
a = list(b)
print(a)
# [1, 2, 3, 2, 1, 'dss', '_犬少', 'dss']
# {1, 2, 3, '_犬少', 'dss'}
# [1, 2, 3, '_犬少', 'dss']
增删改查操作
增加
- 集合名.add(元素)
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.add("波吉")
print(a)
# {1, 2, 3, 4, '_犬少', '波吉', (1, 2, 5)}
删除
- del 集合 :删除集合。
a={1,2,3,4,3,"_犬少",(1,2,5)}
del a
print(a)
# NameError: name 'a' is not defined
- 集合.pop() :随机删除一个值,并返回该值。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.pop()
print(a)
# {2, 3, 4, '_犬少', (1, 2, 5)}
- 集合.remove(3) :删除3这个元素,若3不存在,报错。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.remove(3)
print(a)
# {1, 2, 4, '_犬少', (1, 2, 5)}
a.remove(7)
print(a)
# KeyError: 7
- 集合.discard(3) :删除指定的值,若该值不存在,不报错,返回None。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.discard(3)
print(a)
# {1, 2, 4, '_犬少', (1, 2, 5)}
a={1,2,3,4,3,"_犬少",(1,2,5)}
buf=a.discard("111")
print(a)
print(buf)
# {1, 2, 3, 4, '_犬少', (1, 2, 5)}
None
- 集合.clear() :清空。
a={1,2,3,4,3,"_犬少",(1,2,5)}
a.clear()
print(a)
# set()
查找
a={1,2,3,4,3,"_犬少",(1,2,5)}
print(2 in a)
print("dss" in a)
# True
# False
集合一旦创建,不能修改里面的值。
关系语法
交集
【& / .intersection】: 返回共同元素。
a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a&b
print(c)
# {2, 3, 4, 5}
并集
【| / .union】: 返回不重复元素。
a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a|b
print(c)
# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
差集(补集)
【- / .difference】:返回只属于其中之一的元素。
a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a-b
print(c)
# {1, 6, 7}
对称差集
【^ / .symmetric_difference】 :返回不相同的的元素。
a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
c=a^b
print(c)
# {0, 1, 6, 7, 8, 9}
# a ^ b <=> ( a - b | b - a )
★【.intersection_update、.union_update、.difference_update、.symmetric_difference_update都会将结果更新到原来的集合中。】
子集 < issubset
判断一个集合的所有元素是否完全在另一个集合中。
超集 > issuperset
判断一个集合是否具有另一个集合的所有元素。
a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
d={0,1,2,3,4,5,6,7,8,9}
print(a < b)
print(a>b)
print(a<d)
# False
# False
# True
相同 == 不同 !=
判断集合中的所有元素是否和另一个集合相同。
a={1,2,3,4,5,6,7}
b={3,4,2,5,9,8,0}
print(a==b)
print(a!=b)
# False
# True
【子集或相同 <=】【超集或相同 >=】
集合推导式
使用简易方法,将可迭代对象转换为集合。
- {表达式 for 变量 in 可迭代对象}
- {表达式 for 变量 in 可迭代对象 if 条件}
set={i for i in range(0,10)}
print(set)
# {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
set1={j for j in range(0,10) if j >=6}
print(set1)
# {8, 9, 6, 7}
集合在基础阶段使用较少,在机器学习会经常使用。
【发现有误及时联系】【喜欢记得点赞收藏❤】【欢迎评论补充】
字符串、列表、元组、字典、集合的内容全部更完了,大家可以参考回顾:
【字符串系列1】:字符串基础知识
【字符串系列2】:字符串方法(一)
【字符串系列3】:字符串方法(二)
【列表系列1】:列表(一)
【列表系列2】:列表(二)
【元组】:元组
【字典系列1】:字典(一)
【字典系列2】:字典(二)
python基础暂时更到这里,下期更新函数。
_犬少加油!坚持就是胜利!