集合类型
1、用途
1.关系运算
2.去重
2、定义:在{}内用逗号分隔多个元素,需要注意的是集合内的元素必须满足:
1,集合内的元素必须是不可变类型
2,集合的元素无序
3,集合的元素没有重复
s = {} 定义了一个空字典
s = set() 定义一个空集合
set数据转换功能
res = set('hello')
print(res) # {'e', 'l', 'o', 'h'}
3、常用操作和内置方法
3.1、去重:
li = [
{'name':'xiaoming','age':18},
{'name1':'xiaohong','age':16},
{'name2':'xiaotian','age':19},
{'name':'xiaoming','age':18}
]
l = []
for info in li:
if info not in l:
l.append(info)
print(l)
# [{'name': 'xiaoming', 'age': 18}, {'name1': 'xiaohong', 'age': 16}, {'name2': 'xiaotian', 'age': 19}]
3.2、关系运算:
li1 = {"1","2","3","4","5"}
li2 = {"6","7","8","4","5"}
3.2.1、交集
print( li1&li2 ) # {'4', '5'}
3.2.2、并集
print( li1 |li2 ) #{'3', '7', '8', '1', '4', '6', '5', '2'}
3.2.3、差集
print(li1-li2) # {'2', '3', '1'}
print(li2-li1) # {'7', '6', '8'}
3.2.4、对称差集
print(li1 ^ li2 ) # {'3', '6', '8', '2', '7', '1'}
3.2.5、父子集:父子指的包含和被包含的关系
注意:父集:>=
子集:<=
s1 = {1,2,3}
s2 = {1,2}
print(s1>s2)
# True
print(s2>s1)
# False
s3 = {1,2,3}
s4 = {1,3,2}
print (s3 == s4)
# True
3.3、内置方法:
3.3.1、set.pop( )随机删除
set = {1,2,3,'b','a','c'}
set.pop()
print(set)
# 随机删除一个元素 {1,2,'b','a','c'}
3.3.2、set.remove( '' ) 指定删除,没有会报错
set = {1,2,3,'b','a','c'}
set.remove("b")
print(set)
# {1,2,3,'a','c'}
3.3.3、set.discard('') 指定删除,没有不会报错
set = {1,2,3,'b','a','c'}
set.discard('a')
print(set)
# {1, 2, 3, 'b', 'c'}
3.3.4、set.add('') 添加
set = {1,2,3,'b','a','c'}
set.add(4)
print(set)
# {1, 2, 3, 4, 'c', 'a', 'b'}
3.3.5、set.update({4,5,6}) 更新
set = {1,2,3,'b','a','c'}
set.update((3,4,5,'a'))
print(set)
# {1, 2, 3, 'a', 4, 5, 'b', 'c'}
3.3.6、set.union() : 类似列表的深度拷贝
set = {1,2,3,'b','a','c'}
set1 = set.union()
print(set,id(set))
# {'b', 1, 2, 3, 'c', 'a'} 1886030711040
print(set1,id(set1))
# {'b', 1, 2, 3, 'c', 'a'} 1886030710816
集合总结:
存在一个或者多个值,无序,集合可变(frozenset不可变集合),集合内的元素不可变

浙公网安备 33010602011771号