python中set函数是什么数据类型_Python基本数据类型set方法概述

li=[1,2,3,4,5,6,3,2,1]

s2 = set(li)

print(set(li))

#difference()去除相同项,生成一个新的集合,删除

s3=s2.difference([1,2,3,11])

set1 = {1,44,87,23,55}

set2 = {1,44,88,23,67}

# difference()比较元素 set1中有而set2中没有

ret = set1.difference(set2)

print(ret)#{55, 87}

print(set1)

print(set2)

#difference_update()删除两集合中相同的元素--

#从set1中删除和set2中相同的元素

set1.difference_update(set2)

print(set1)

print(set2)

#discard(valyes) 移除元素

#移除指定元素,不存在不会报错,remove()不存在会报错,建议discard

set1.discard(4)

print(set1)

#intersection()取交集值

set1 = {1,44,87,23,55}

set2 = {1,44,88,23,67}

ret = set1.intersection(set2)

print(set1)

#intersection_difference()取交集并更新

#取交集并更新到set1中

set1.intersection_update(set2)

print(set1)

#symmetric_difference()对称交集

#对称交集,取两个集合中互不存在的元素,生成一个新的集合

ret = set1.symmetric_difference(set2)

print(ret)#{67, 55, 87, 88}

symmetric_difference_update()对称交集并更新

set1.symmetric_difference_update(set2)

#对称交集,并更新元素到set1中

print(set1)

#union()并集

#并集并更新到新的集合中

ret = set1.union(set2)

print(ret)

# 数据库中原有

old_dict = {

"#1":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 },

"#2":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 },

"#3":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 }

}

# cmdb 新汇报的数据

new_dict = {

"#1":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 800 },

"#3":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 },

"#4":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 }

}

"""

分析:

1、新有,原来无→新加入

2、新有,原来有→更新

3、新无,原来有→原来删除

使用set的交集和差集来计算

old_dict.keys()

new_dict.keys()

交集(更新):要更新的数据

差集(删除):old_dict.keys()--交集

差集(添加):new_dict.keys()--交集

"""

old=set(old_dict.keys())

new=set(new_dict.keys())

up_set=old.intersection(new) #需要更新的集合

del_set=old.symmetric_difference(up_set) #需要删除的集合

add_set=new.symmetric_difference(up_set) #需要添加的集合

print(up_set)

print(del_set)

print(add_set)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值