python-day3-集合
集合的特性:无序性,唯一性,可嵌套性
1 #创建集合方式
2 s1={11,22}# 直接创建
3 s2=set()#创建空集合
4 s3=set([111,222,333])#转换为集合
1 #集合的方法
2 s1={11,22,33}
3 s2={22,33,44}
4 print(s1.difference(s2))#s1中存在s2中不存在
#输出 {11}
s1={11,22,33}
s2={22,33,44}
s3=s1.symmetric_difference(s2)
print(s3)#将s1与s2中不同的放一起组成新集合
#显示{11, 44}
s1={11,22,33}
s2={22,33,44}
#update方法,s1中存在s2中不存在的值赋给s1
s1.difference_update(s2)#覆盖s1
print(s1)
#显示:{11}
s1={11,22,33}
s2={22,33,44}
# #删除元素
s2.discard(1111)#需要加参数,没有元素不报错
s1.remove(1111)#需要加参数,没有元素报错
res = s1.pop()#随机移除元素,不加参数,接受返回值(删除的元素
s1={11,22,33}
s2={22,33,44}
#求交集
s4=s1.intersection(s2)#求交集赋值给s4
s1.intersection_update(s2)#求交集覆盖s1
print(s4)
print(s1)
#显示{33, 22} {33, 22}
s1={11,22,33}
s2={22,33,44}
s1.isdisjoint(s2)#判断s1是否包含s2 返回True or False
#联合,并集
s5=s1.union(s2)
#显示{33, 22, 11, 44}
#给集合添加一个元素
s1.add(111)#增加一个元素
print(s1)
#显示{33, 11, 22, 111}
#给集合添加一组元素
li=[111,222,333]
s1.update(li)#添加一组元素,参数为可迭代的对象
print(s1)
#显示{33, 11, 333, 111, 22, 222}
#集合的综合使用,根据new_dict,更新old_dict
old_dict={
'#1':8,
'#2':4,
'#4':2,
}
new_dict={
'#1':4,
'#2':4,
'#3':2,
}
#将old_dict的key放入一个集合
s1=set(old_dict.keys())
#将new_dict的key放入一个集合
s2=set(new_dict.keys())
#找出old中存在,new中不存在的赋给del_old(需要删除的key)
del_old=s1.difference(s2)
print(del_old)
#找出old中不存在,new中存在的值赋给add_old
add_old=s2.difference(s1)
print(add_old) #找出两个字典中相同的keys,则是需要更新
update_set=s1.intersection(s2) #将要删除的集合元素转为列表
del_old=list(del_old) #删除字典中的元素
del old_dict[str(del_old[0])] #将需要添加的集合转为列表
add_old=list(add_old) #添加新元素到old_dict中
old_dict[str(add_old[0])]=new_dict[str(add_old[0])] #轮询更新相同key不同vlaues的元素
for i in update_set:
old_dict[i]=new_dict[i] print(old_dict,new_dict) #显示
{'#4'}
{'#3'}
{'#1': 4, '#3': 2, '#2': 4} {'#1': 4, '#3': 2, '#2': 4}
python-day3-集合的更多相关文章
- 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...
- Python 3 集合基础和概念!
Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...
- Python的集合
1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...
- Python 操作集合
Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...
- Python中集合set()的使用及处理
在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...
- Python:集合操作总结
集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...
- python 的集合 set()操作
Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素. 有以下运算: 1.创建一个set ()集合: 2.add:增加集合元素 3.clea ...
- python set集合(16)
在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...
- python frozenset集合(17)
在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...
- Python数据类型--集合(set)
Python的集合是无序.可迭代的容器对象,所有元素放在一对大括号中{},元素之间使用逗号隔开,同一集合内的元素具有唯一性,不允许重复. 集合中只能包含数字.字符串.元组等不可变类型的数据,不能包含列 ...
随机推荐
- LinqToDataTable
/// <summary> /// 下面通过一个方法来实现返回DataTable类型 /// LINQ返回DataTable类型 /// </summary> /// < ...
- app开发版面设计原则
(1) 单纯:形象和色彩必须简单明了(也就是简洁性). (2) 统一:造型与色彩必须和谐,要具有统一的协调效果. (3) 均衡:整个画面须要具有魄力感与均衡效果. (4) 展现重点:构成要素必须化繁为 ...
- PHP开发大型项目的一点经验
一.变量 最好是把所有的变量存储在一个数组中,这样在程序的开发中可以带来很多的方便,特别是当程序很大的时候.变量的命名就当适合自己的习惯,不管是用拼音还是英语,至少应当有一定的意义,以便适合记忆.变量 ...
- 数据库mysql的基本命令
问题分析 当数据量很大的时候,所有数据都集中在一个文本文件中的话,读写会很困难,内存消耗大,速度很慢 操作很麻烦,因为读写都要根据指定的格式尽心解析,不通用 每次获取数据都要全部数据重新读写,不能通过 ...
- Kettle 合并记录报错!
在Kettle的合并记录过程的时候,在“为了转换解除补丁开始 ”这一步的时候报错.具体错误如图所示: Kettle的转换如图所示: 问题原因:可能是你的数据库链接驱动和Kettle的版本不兼容. 解决 ...
- AWS学习之EC2
1.AWS简介 AWS(Amazon Web Services )提供了一整套云计算服务,让您能够构建复杂.可扩展的应用程序.如今,成千上万各种规模的客户都在使用这些云计算服务,它们涉及各个行业,包括 ...
- Asp.net从文件夹中读取图片,随机背景图
第一步:配置文件web.config里添加 <system.web><connectionStrings> <!--name 是自定义的,connectionString ...
- Java----代码优化篇
一.咱们之所以这么干的目的: 1.效率(最重要) 2.可读性,便于后期维护.(同样很重要) 二.代码优化的要求: 1.减小代码的体积. 2.提高代码的运行效率. 三.常用的代码的优化: 1.尽量重用对 ...
- C++排列对称串
题目内容:字符串有些是对称的,有些是不对称的,请将那些对称的字符串按从小到大的顺序输出.字符串先以长度论大小,如果长度相同,再以ASCII码值为排序标准. 输入描述:输入数据中含有一些字符串(1< ...
- Firebird 修改表名
UPDATE RDB$RELATIONS SET RDB$RELATION_NAME='NEWNAME' where RDB$RELATION_NAME='OLDNAME'; UPDATE RDB$ ...