python set集合操作
2016-01-13 18:03
525 查看
set集合是一个无序且不重复的集合。
创建一个set集合:
name = set('sdd')
name
返回结果:{'d', 's'}
add
clear
copy
difference
difference_update
discard
intersection
intersection_update
isdisjoint
issubset
issuperset
pop
remove
symmetric_difference
symmetric_difference_update
union
update
测试程序
创建一个set集合:
name = set('sdd')
name
返回结果:{'d', 's'}
add
功能:增加集合元素 name = {'d', 's'} name.add('d') name 返回结果:{'d', 's'} name.add('sd') name 返回结果:{'sd', 'd', 's'}
clear
功能:清空集合元素 name = {'d', 's'} name.clear() name 返回结果:{}
copy
功能:浅拷贝 name = {'sd', 'd', 's'} li = name.copy() 返回结果:li {'sd', 'd', 's'}
difference
name.difference(li) set() >>> name.difference() {'sd', 'd', 's'}
difference_update
功能:删除当前set中的所有包含在 new set 里的元素 li = ('s', 'd') name = {'sd', 'd', 's'} name.difference_update(li) name 返回结果:{'sd'}
discard
功能:移除元素 name = {'sd', 'd', 's'} name.discard('s') 返回结果:name {'sd', 'd'}
intersection
功能:取交集,建立新的set集合 li = ('s', 'd') name = {'sd', 'd', 's'} name.intersection(li) 返回结果:{'d', 's'}
intersection_update
功能:取交集,更新原来的set集合 li = ('s', 'd') name = {'sd', 'd', 's'} name.intersection_update(li) 返回结果:{'d', 's'}
isdisjoint
功能:判断没有交集,返回True,否则,返回False li = {'s', 'd'} name = {'sd', 'd', 's'} name.isdisjoint(li)
issubset
功能:判断是否是子集 li = {'s', 'd'} name = {'sd', 'd', 's'} name.issubset(li) #判断name是不是li的子集 返回结果:False li.issubset(name) #判断li是不是name的子集 返回结果:True
issuperset
功能:判断是否是父集 li = {'s', 'd'} name = {'sd', 'd', 's'} name.issuperset(li) #判断name是不是li的父集 返回结果:True li.issuperset(name) #判断li是不是name的父集 返回结果:False
pop
功能:移除集合元素 name = {'sd', 'd', 's'} name.pop() 返回结果:'sd' #同一个集合,删除集合元素的顺序固定 se1 = {'a','s','sb'} se1.pop() 返回结果:'sb'
remove
功能:移除指定集合元素 name = {'sd','d','s'} name.remove('s') 返回结果:name {'sd', 'd'}
symmetric_difference
功能:去两个集合的差集,建立新的set集合对象 name = {'sd', 'd', 's'} li = {'s', 'd'} name.symmetric_difference(li) 返回结果:{'sd'}
symmetric_difference_update
功能:去两个集合的差集,更新原来的集合对象 name = {'sd', 'd', 's'} li = {'s', 'd'} name.symmetric_difference_update(li) 返回结果:{'sd'}
union
功能:并集,创建新的对象 name = {'sd', 'd', 's'} li = {'s', 'd','h'} name.union(li) 返回结果:{'h', 's', 'd', 'sd'}
update
功能:更新已有集合 name = {'sd', 'd', 's'} name.update('df') name 返回结果:{'sd', 'd', 'f', 's'}
set集合 ### 2016.1.17更新
优点:访问速度快; 自带一套解决元素重复的解决方案
测试程序
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 }, } new_dict = { "#1":{ 'hostname':'c1', 'cpu_count': 2, 'mem_capicity': 800 }, "#3":{ 'hostname':'c1', 'cpu_count': 2, 'mem_capicity': 80 }, "#4":{ 'hostname':'c2', 'cpu_count': 2, 'mem_capicity': 80 }, } 获取三个列表: 1. 需要更新的列表 update_list 2. 需要删除的列表 del_list 3. 需要增加的列表 add_list 代码实现: #!/usr/local/env python3 ''' Author:@南非波波 Blog:http://www.cnblogs.com/songqingbo/ E-mail:qingbo.song@gmail.com ''' 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 }, } new_dict = { "#1":{ 'hostname':'c1', 'cpu_count': 2, 'mem_capicity': 800 }, "#3":{ 'hostname':'c1', 'cpu_count': 2, 'mem_capicity': 80 }, "#4":{ 'hostname':'c2', 'cpu_count': 2, 'mem_capicity': 80 }, } #设置set old_set = set(old_dict.keys()) new_set = set(new_dict.keys()) #更新的set update_set = new_set.intersection(old_dict) delate_set = old_set.difference(update_set) add_set = new_set.difference(update_set) update_list = [] del_list = [] add_list = [] # print(update_set) # print(delate_set) # print(add_set) for i in update_set: update_list.append({i:new_dict[i]}) print('需要更新的列表:%s' % update_list) for i in delate_set: del_list.append({i:old_dict[i]}) print("需要删除的列表:%s" % del_list) for i in add_set: add_list.append({i:new_dict[i]}) print("需要增加的列表:%s" % add_list)
相关文章推荐
- python IP 地址和数字之间的转换
- Python/C API Unicode对象
- python做工具遇到报错:[Errno 22] invalid mode ('rb') or filename
- 访问google的python脚本
- python程序--实现zip压缩
- Python扫描文件夹&&分析文件
- Python的基础--对象
- python错误收集
- 【Python】线程的创建、执行、互斥、同步、销毁
- Python操作Excel
- selenium+python自动化测试笔记(1)
- Practice In Python UT & Coverage
- python 统计列表相同值重复次数
- 笨办法学Python学习笔记 练习26
- 笨办法学Python学习笔记 练习25
- python的安装与运行
- Python 整理一
- python 集合
- python学习之路(1)
- python子进程模块subprocess详解与应用实例 之一