python(三)set集合
set集合的特点是无序、不重复序列
创建集合:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
a.s1 = { 11 , 22 } b.s2 = set () c.s3 = set ([ 11 , 22 , 33 , 44 ]) s = set () #创建空集合 li = [ 11 , 22 , 11 , 22 ] s2 = set (li) print (s2) { 11 , 22 } se = { "123" , "456" } li = [ ] list (( 11 , 22 , 33 , 44 )) 原理:当执行 list ()时,内部会调用 list __init__,内部执行 for 循环( 11 , 22 , 33 , 44 ) [ 11 , 22 , 33 , 44 ] #只要类()这样的形式,就会去调用__init__的方法。 |
操作集合:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
s = set () s.add( 123 ) #添加元素 s.add( 123 ) s.add( 123 ) print (s) s.clear() #清空内容 s.copy() #浅拷贝 s1 = { 11 , 22 , 33 } s2 = { 22 , 33 , 44 } s3 = s1.difference(s2) #a中存在,b中不存在的 s1中存在,s2中不存在 s4 = s2.difference(s1) #s2中存在,s1中不存在 # s3 = s1.symmetric_difference(s2) #a中存在b中不存在,b中存在a中不存在的拿出来。 # print(s3) # s1.difference_update(s2) #把a(s1)中存在,b(s2)中不存在的值更新到a中。如果以后还会用到s1,就不要用此方法,如果确定以后不会再用 # s1了就可以直接用这个方法。这样的好处是减少变量的声明。 # print(s1) # s1.discard(11) #移除指定元素,如果元素不存在则不报错 # s1.remove(1111) #移除指定元素,如果元素不存在则报错 # s1.pop() #随机移除一个s1中的元素,因为集合是无序的,所以移除元素是不确定的。移除的 # 时候会返回移除的元素的值。 # pop方法演示: s1 = { 11 , 22 , 33 } ret = s1.pop() print (ret) 33 # s1 = {11,22,33} # s2 = {22,33,44} # s3 = s1.intersection(s2) #取s1和s2的交集,就是两个集合都有的元素 # print(s3) # {33, 22} # s1.intersection_update(s2) #同样与difference_update类似,把两个集合的交集元素更新到s1中 # print(s1) # s3 = s1.union(s2) #把两个集合合起来,去并集。如s1和s2,结果就是11,22,33,44 # print(s3) # {33, 22, 11, 44} s1 = { 11 , 22 , 33 } s1.update([ 55 , 66 , 777 ]) #接收一个可迭代的对象,内部会自己去循环这个对象,然后把元素 # 更新到集合中。相当于批量添加 print (s1) { 33 , 66 , 777 , 11 , 22 , 55 } s1.update( "abcdefg" ) #字符串也是可迭代的,会把每个字符分开,更新到集合中 print (s1) |
1
2
3
4
5
6
7
8
9
10
11
|
old_dict = { "#1" : 8 , "#2" : 4 , "#4" : 2 , } new_dict = { "#1" : 4 , "#2" : 4 , "#3" : 2 , } |
1
2
3
|
del_set = set (old_dict).difference( set (new_dict)) #取出需要删除的槽位{ '#4' } add_set = set (new_dict).difference( set (old_dict)) #取出需要添加的槽位{ '#3' } update_set = set (new_dict).intersection( set (old_dict)) #取出需要更新的槽位{ '#2' , '#1' } |
python(三)set集合的更多相关文章
- Python之路(第五篇) Python基本数据类型集合、格式化、函数
一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
- Python的set集合详解
Python 还包含了一个数据类型 -- set (集合).集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持 union(联合),intersection(交),dif ...
- Python基本数据类型集合、格式化、函数
一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
- Python - 三大器 迭代器,生层器,装饰器
目录 Python - 三大器 迭代器,生层器,装饰器 一. 容器 二. 可迭代对象(iterable) 三. 迭代器 四. 生成器 五. 装饰器 1. 定义 六. 闭包 Python - 三大器 迭 ...
- Python列表、集合与字典(3)
目录 一.列表 二.集合 三.字典 一.列表 1. 列表初识 列表的使用为处理特定顺序排列的数据提供了便利,列表元素可以是字母.数字或者其他信息,同时所加元素之间不存在任何关系. 在Pytho ...
- python基本数据类型集合set操作
转:https://www.cnblogs.com/tina-python/p/5468495.html 一.集合的定义 set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值 ...
- python基础数据类型--集合(set)
python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...
- JAVA:三种集合LIST、SET、MAP
1. 集合框架介绍 我 们知道,计算机的优势在于处理大量的数据,在编程开发中,为处理大量的数据,必须具备相应的存储结构,数组可以用来存储并处理大量类型相同的数 据,但是会发现数组在应用中的限制:数组长 ...
- python爬虫工具集合
python爬虫工具集合 大家一起来整理吧!强烈建议PR.这是初稿,总是有很多问题,而且考虑不全面,希望大家支持! 源文件 主要针对python3 常用库 urllib Urllib是python提供 ...
随机推荐
- time模块目录下自己建立一个名为log的文件夹
使用python调用ping命令,然后在日志中记录ping的结果,用来监测网络连通情况. 代码: [python]from time import *from subprocess import *w ...
- IOS第18天(10,核心动画-转盘,自定义buton,旋转动画)
*****HMViewController.m #import "HMViewController.h" #import "HMWheelView.h" @in ...
- 400 Bad Request(angluarJs)
今天做一个编辑的功能的时候,像后台传递一个实体,结果报400 Bad Request的错误....找了好久也没发现错误,老是报(不支持GET方式提交),检查好多遍我都是用的POST...不知道问题出在 ...
- windows 精简/封装/部署
给一个精简过的Windows7安装net35,提示自己到『打开或关闭Windows功能』里打开,然而发现并没有,只有一个ie9的功能.搜索尝试各种办法,显然都不行.用dism部署功能的工具,挂载一个完 ...
- Codeforces Round #346 (Div. 2) E F
因为很久没有个人认真做题了 昨天晚上开了场虚拟cf来锻炼个人手速 选的是第一次做cf的场 那时候7出3还被hack...之后也没补题 这次做的时候顺便回忆了一下以前比赛的时候是怎么想的 发现经验还是很 ...
- DS实验题 Order 已知父节点和中序遍历求前、后序
题目: 思路: 这题是比较典型的树的遍历问题,思路就是将中序遍历作为位置的判断依据,假设有个节点A和它的父亲Afa,那么如果A和Afa的顺序在中序遍历中是先A后Afa,则A是Afa的左儿子,否则是右儿 ...
- window.self ->window.top->window.parent
在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法 ...
- NGUI 渲染流程深入研究 (UIDrawCall UIGeometry UIPanel UIWidget)
上图是一个简要的NGUI的图形工作流程,UIGeometry被UIWidget实例化之后,通过UIWidget的子类,也就是UISprit,UILabel等,在OnFill()函数里算出所需的Geom ...
- 为 mysql 数据表添加主键
DROP TABLE IF EXISTS `sdo_actData`.`actCDKey`; CREATE TABLE `sdo_actData`.`actCDKey` ( `RoleID` ) ' ...
- linux下C++ 插件(plugin)实现技术
应用程序中使用插件技术,有利于日后的版本更新.维护(比如打补丁)和功能扩展,是一种很实用的技术.其最大的特点是更新插件时无需重新编译主程序,对于一个设计良好的应用系统而言,甚至可以做到业务功能的在线升 ...