数据类型之集合set
set 不允许重复的无序集合,不能通过下标取值,因为无序
1、创建
   创建空集合
   s ={} 默认类型为字典,所以不是空集合,空集合如下
   s = set()
   s = {11,12,12,34,23} #字典是有键值对,集合没有
   s = set()#括号内可以接收可以迭代的元素,str list tuple dict
2、转换
   s = ([11,123,1234,12345])
   l = "123"
   l = [1,2,3,4]
   l = (1,2,3,4)
   s = set(l)
3、方法
#集合中元素无序不重复
st = {11,22,33,44,55,66}
#集合中添加元素

st.add(77)
print(st)
a = {11,22,33,55,66}
b = {55,66,77,11}

#diference方法

#a.difference(b),a不同于b的元素有哪些,a保持不变

reta = a.difference(b)
print(a)
print(reta)

#b.difference(a),b不同于a的元素有哪些,b保持不变

print(b)
retb = b.difference(a)
print(retb)

#difference_update方法,找出a不同于b的元素并重新覆盖a

a.difference_update(b)
print(a)

#找出b不同于a的元素并覆盖b

b.difference_update(a)
print(b)

 #找出a集合不同于b结合的的元素,b集合不同于a集合的元素,可以赋值给一个新集合

retab = a.symmetric_difference(b)
retba = b.symmetric_difference(a)
print(retab)
print(retba)

#找出a集合不同于b结合的的元素,b集合不同于a集合的元素,并将找到的结果更新到a结合

a.symmetric_difference_update(b)
print(a)

#找出b集合不同于a结合的的元素,a集合不同于b集合的元素,并将找到的结果更新到b结合

b.symmetric_difference_update(a)
print(b)

#discard移除集合中的元素,如果元素存在移除,不存在不报错

print(a)
a.discard(11)
print(a)
a.discard(456)
print(a)

#remove移除集合中的元素,如果元素存在移除,不存在报错

print(a)
a.remove(22)
print(a)

#111元素不存在与a中,下面的会报错

a.remove(111)
a.remove()

#intersaction取两个集合的交集,并可以赋值给一个新的集合

retinab = a.intersection(b)
print(retinab)

#a.intersection_update(b)取两个集合的交集,并将得到的集合更到集合a

a.intersection_update(b)
print(a)

#并集union
#取a集合和b集合的并集

retuab = a.union(b)
print(retuab)

#update将b集合更新追加到a集合中

a.update(b)
print(a)

#a.isdisjoint(b)

t = a.isdisjoint(b)
print(t)

#a.issubset(b)  a是不是b的子序列

print(a.issubset(b))

#a.issuperset(b) 是不是b的父序列

print(a.issuperset(b))

#a.pop()把一个元素移除,可以将这个移除的值赋值给一个变量

ta = a.pop()
print(ta)

#练习:寻找差异,并更新old字典
#将old_dict、new_dict中都存在的更新,old_dict在new_dict中不存在的删除
#new_dict在old_dict中不存在的,追加到old中去

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 }
} k1 = old_dict.keys()
k2 = new_dict.keys() k1_set = set(k1)
k2_set = set(k2)
k1_d_k2 = k1_set.difference(k2_set)
print(k1_d_k2)
for i1 in k1_d_k2:
old_dict.pop(i1)
print(old_dict) k2_d_k1 = k2_set.difference(k1_set)
print(k2_d_k1)
for i2 in k2_d_k1:
old_dict[i2] = new_dict[i2]
print(old_dict) k1_inter_k2 = k1_set.intersection(k2_set)
print(k1_inter_k2)
for i3 in k1_inter_k2:
old_dict[i3] = new_dict[i3]
print(old_dict) print(old_dict==new_dict)

7、python数据类型之集合set的更多相关文章

  1. 【转】Python数据类型之“集合(Sets)与映射(Mapping)”

    [转]Python数据类型之“集合(Sets)与映射(Mapping)” 一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的 ...

  2. Python笔记_第一篇_面向过程_第一部分_5.Python数据类型之集合类型(set)

    集合!Python中的集合数据基本上是为了方便数学计算使用的. 什么是集合? 集合就是“确定的一堆东西”.集合里面的东西叫做元素. 特点:1. 集合里面是没有重复的元素的.           2. ...

  3. python 数据类型之集合

    一.集合的定义: 定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key. 特性:集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值 二 ...

  4. Python数据类型-8 集合set

    集合set set集合是一个无序不重复元素的集,基本功能包括关系测试和消除重复元素.集合使用大括号({})框定元素,并以逗号进行分隔.但是注意:如果要创建一个空集合,必须用 set() 而不是 {} ...

  5. Python—数据类型之集合(Set)

    1.集合是一个无序的,且不重复元素的集合.它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的. 2.基本功能包括关系测试和消除重复元素.注意:集合存在的意义就是去 ...

  6. Python数据类型之“集合(Sets)与映射(Mapping)”

    一.集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个 ...

  7. Python基础-python数据类型之集合(四)

    集合 集合是一个无序的,不重复的数据组合,基本功能包括关系测试和消除重复元素. 集合对象还支持 union,intersection,difference和 sysmmetric difference ...

  8. python 数据类型 之 集合

    集合是一个数学概念:由一个或多个确定的元素所构成的整体叫做集合 集合的三个特性: 1.确定性 (element必须可hash,不可变类型是可hash的) 2.互异性(集合中element 不能重复) ...

  9. python数据类型之集合

    对python中集合的理解 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set ...

随机推荐

  1. 手动导入XMPPFramework框架

    环境: Xcode 8.2.1 XMPPFramework 3.6.5 (下载地址) Objective-C (项目使用的语言,最新版的3.7.0要求convert to swift) 1.下载XMP ...

  2. oracle 12c 列式存储 ( In Memory 理论)

    随着Oracle 12c推出了in memory组件,使得Oracle数据库具有了双模式数据存放方式,从而能够实现对混合类型应用的支持:传统的以行形式保存的数据满足OLTP应用:列形式保存的数据满足以 ...

  3. Springboot监控之一:SpringBoot四大神器之Actuator之2--spring boot健康检查对Redis的连接检查的调整

    因为项目里面用到了redis集群,但并不是用spring boot的配置方式,启动后项目健康检查老是检查redis的时候状态为down,导致注册到eureka后项目状态也是down.问下能不能设置sp ...

  4. 人物-IT-雷军:雷军

    ylbtech-人物-IT-雷军:雷军 雷军 (全国工商联副主席,小米科技创始人.董事长) 雷军,1969年12月16日出生于湖北仙桃,毕业于武汉大学,是中国大陆著名天使投资人.  雷军作为中国互联网 ...

  5. JavaScript代码存放位置

    JavaScript代码存放位置 HTML的head中 HTML的body代码块底部(推荐) 由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置 ...

  6. 加减 script函数初识

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. [poj1390]Blocks(方块消除)

    题目大意:给定一序列,可点击某一位置消除与其相邻且相同的方块,得分为$len*len$,求最大得分. 解题关键:关键是状态的构造,首先离散化一下,令$dp[i][j][k]$表示序列$i-j$且后面有 ...

  8. (分享)一位资深程序员大牛给予Java初学者的学习路线建议

    摘自:http://bbs.itheima.com/thread-333038-1-1.html 如果你是在校学生,务必要在学好基础(比如计算机系统.算法.编译原理等等)的前提下,再考虑去进行下面的学 ...

  9. 程序员笔记|详解Eureka 缓存机制

    引言 Eureka是Netflix开源的.用于实现服务注册和发现的服务.Spring Cloud Eureka基于Eureka进行二次封装,增加了更人性化的UI,使用更为方便.但是由于Eureka本身 ...

  10. vue打包之后生成一个配置文件修改请求接口

    问题描述: 在npm run build 生成dist后,url配置也被固定了,传到运行的前端服务器上后,假设某次,api服务器的ip修改了,改动只是更新下这个url,但是却需要回到前端源码,修改ur ...