【第三周】Python3中的集合(Set)
【1】集合 set 的基本运算
集合中的元素是不重复的
集合是有默认展现方式,但实际上是无序的
【1.1】把其他类型转换成集合 set(object)
list_1 = [1,4,5,7,3,6,7,9]
set_1=set(list_1)
print(set_1,type(set_1))
a = set('abracadabra')
print(a)
{1, 3, 4, 5, 6, 7, 9} <class 'set'>
{'c', 'd', 'b', 'a', 'r'}
【1.2】集合的交集(&)、并集(|)、差集(-)、对称差集(^)
list_1={1,3,5,7,9}
list_2={2,4,5,8,10}
print('----------- 使用方法操作 ---------------')
#交集
print(list_1.intersection(list_2))
#并集
print(list_1.union(list_2))
#差集
print(list_1.difference(list_2))
#对称差集,去掉了交集部分
print(list_1.symmetric_difference(list_2))
print('----------- 使用运算符操作 ---------------')
#交集
print(list_1 & list_2)
#并集
print(list_1 | list_2)
#差集
print(list_1 - list_2)
#对称差集
print(list_1 ^ list_2)
print('----------- 子集交集等判断 ---------------')
#子集的判断,是子集则为 True
print(list_1.issubset(list_2))
#父集的判断,是父集则为 True
print(list_1.issubset(list_2))
#交集的判断,如果没有交集则为True
print(list_1.isdisjoint(list_2))
----------- 使用方法操作 ---------------
{5}
{1, 2, 3, 4, 5, 7, 8, 9, 10}
{1, 3, 9, 7}
{1, 2, 3, 4, 7, 8, 9, 10}
----------- 使用运算符操作 ---------------
{5}
{1, 2, 3, 4, 5, 7, 8, 9, 10}
{1, 3, 9, 7}
{1, 2, 3, 4, 7, 8, 9, 10}
----------- 子集交集等判断 ---------------
False
False
False
【1.3】集合的增(add,update)删(remove,pop,discard)
list1={1,2,3,4,5}
#添加一项
list1.add(999)
print(list1)
#添加多项
list1.update([111,222,333])
print(list1)
#删除 remove 删不存在则报错
list1.remove(999)
print(list1)
#pop按照默认排列顺序从最前面删
list1.pop()
list1.pop()
list1.pop()
print(list1)
list1.pop()
list1.pop()
list1.pop()
print(list1)
#discard 删除,删除不存在元素不会报错
list1.discard(111)
print(list1)
{1, 2, 3, 4, 5, 999}
{1, 2, 3, 4, 5, 999, 333, 111, 222}
{1, 2, 3, 4, 5, 333, 111, 222}
{4, 5, 333, 111, 222}
{111, 222}
{222}
【1.4】元素是否在集合中
list1={1,2,3,4,5}
#判断某个元素是否在集合中
print(1 in list1)
print(5 not in list1)
True
False