集合类型

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不可变集合),集合内的元素不可变
posted @ 2021-03-29 20:59  此用户名不可用  阅读(74)  评论(0)    收藏  举报