set的特性和基本用法——python3.6
- 特性
- 无序,不重复的数据组合,用{}表示,eg:{1,2,3,4,5,6}
- 用途
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之间的交集,差集,并集,对称差集,包含(子集和超集,相交和不相交)关系
- 基本语法
- set():创建一个空集合,用set()创建,不能直接用s = {},这是创建一个空字典
s = set()
print(type(s)) # =><class 'set'>- add:往集合中添加一个元素,如果添加的元素集合中已有,则集合没有任何变化,只能添加不可变数据
s = {,,,,}
s.add()
print(s) # =>{, , , , }
s.add()
print(s) # =>{, , , , , }- update:往集合中添加多个元素,自动去重
s = {,,,,}
s.update({,,,,})
print(s) # =>{, , , , , , , }- discard:删除指定元素,如果要删除的元素集合中不存在,do nothing
s = {,,,,}
s.discard()
print(s) # =>{, , , }- remove:删除指定元素,如果要删除的元素集合中不存在,报错
s = {,,,,}
s.remove()
print(s) # =>{, , , }
s.remove() # =>报错- pop:随机删除一个元素,无序的,当集合为空时,报错
s = {,}
s.pop()
print(s) # =>{}
s.pop()
s.pop() # =>报错- clear:清空
s = {,,,,}
s.clear()
print(s) # =>set()- copy:浅复制
s = {,,,,}
s1 = s.copy()
print(s1) # =>{,, , , }difference:差集,差集后的结果是一个新的集合
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.difference(s2)
print(s3) # =>{, , }
s3 = s1-s2
print(s3) # =>{, , }
s4 = s2.difference(s1)
print(s4) # =>{, , }
s4 = s2-s1
print(s4) # =>{, , }difference_update:删除s1集合中含有s2集合中的元素,并返回给s1
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.difference_update(s2)
print(s1) # =>{, , }intersection:交集,交集后的结果是一个新的集合
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.intersection(s2)
print(s3) # =>{, }
s3 = s1 & s2
print(s3) # =>{, }
s3 = s2.intersection(s1)
print(s3) # =>{, }
s3 = s2 & s1
print(s3) # =>{, }intersection_update:将s1和s2的交集更新给s1
s1 = {,,,,}
s2 = {,,,,}
s1.intersection_update(s2)
print(s1) # =>{, }union:并集
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.union(s2)
print(s3) # =>{, , , , , , , }
s3 = s1 | s2
print(s3) # =>{, , , , , , , }isdisjoint:判断两个集合是否有交集,如果没有,返回True,如果有,返回False
s1 = {,,,,}
s2 = {,,,,}
s3 = {,}
print(s1.isdisjoint(s2)) # => False
print(s1.isdisjoint(s3)) # =>Trueissubset:判断s2是否是s1的子集,如果是,则True,or,False
s1 = {,,,,}
s2 = {,}
print(s2.issubset(s1)) # =>True- issupper:判断s1是否是s2的超集
s1 = {,,,,}
s2 = {,}
print(s1.issuperset(s2)) # =>True- symmetric_difference:对称差集
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.symmetric_difference(s2)
print(s3) # =>{, , , , , }
s3 = s2.symmetric_difference(s1)
print(s3) # =>{, , , , , }- symmetric_difference_updata:将对称差集更新给s1,或者s2
s1 = {,,,,}
s2 = {,,,,}
s1.symmetric_difference_update(s2)
print(s1) # =>{, , , , , }
s2.symmetric_difference_update(s1)
print(s2) # =>{, , , , }
- 其他用法:
- in ,not in 判断某元素是否在集合内
- == ,!=判断两个集合是否相等
set的特性和基本用法——python3.6的更多相关文章
- JavaScript高级 面向对象(11)--对象的动态特性-关联数组用法
说明(2017.4.2): 1. 对象的动态特性: (1)在js中,一个对象需要属性,就可以利用“对象名.属性 = 值”的方式为其添加,只要赋值成功,对象就新增这个属性. (2)对象属性的访问形式: ...
- dict的特性和基本语法——python3.6
特性 key:value结构,字典中的每一个元素,都是键值对 key必须可被hash,且必须为不可变数据类型,必须唯一 可存放任意多个值,可修改,可以不唯一 无序 查找速度快,因为hash可以把key ...
- subprocess.run()用法python3.7
def run(*popenargs, input=None, capture_output=False, timeout=None, check=False, **kwargs): "&q ...
- 枚举特性FlagsAttribute的用法
先看官方的解释:指示可以将枚举作为位域(即一组标志)处理. 看起来并不好理解,到底什么是作为位域处理? 其实说的通俗点就是用二进制的表示方式来处理数学集合概念中关于集合的或与非等运算方法. 有什么用 ...
- Python3 range() 函数用法
Python3 range() 函数用法 Python3 内置函数 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表. Pyth ...
- python学习2—python3特性与各种运算符
python学习2—python3特性与各种运算符 python3与python2相比具有的新特性 在python2中可以使用__future__模块调用python3的特性 print()函数必须带 ...
- 让你的python程序同时兼容python2和python3
python邮件列表里有人发表言论说「python3在10内都无法普及」.在我看来这样的观点有些过于悲观,python3和python2虽然不兼容,但他们之间差别并没很多人想像的那么大.你只需要对自己 ...
- (转载)C# 枚举 FlagsAttribute用法
这是读过几篇文章后发现整理的最完整的一篇文章 转载地址:枚举特性FlagsAttribute的用法 先看官方的解释:指示可以将枚举作为位域(即一组标志)处理. 看起来并不好理解,到底什么是作为位域处理 ...
- C# 当中 LINQ 的常规用法(Lambda 方式)
仅以本篇博文记录 LINQ 相关操作的基本知识,原型参考自 MSDN 相关知识,中间加以自己的理解与 DEMO. 1. IEnuemrable<T>.Select() Select 方法比 ...
随机推荐
- ABAP事件分类
1.报表事件 INITIALIZATION. START-OF-SELECTION. END-OF-SELECTION. 2.选择屏幕事件 在INITIALIZATION和START-OF-SELEC ...
- Python3+Selenium3+webdriver学习笔记11(cookie处理)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记11(cookie处理)'''from selenium im ...
- java面试题(杨晓峰)---第一讲谈谈你对java平台的理解
本人总结: 面向对象(封装,继承,多态) 平台无关性(jvm运行,class文件) 语言(泛型,lambda) 类库(集合,并发,网络,io/nio) jre(java运行环境,JVM,类库) JDK ...
- 让您的Eclipse具有千变万化的外观
大家每天用Eclipse做Java开发,是否厌倦了Eclipse千篇一律的白色背景呢? 看看Jerry这几种不同风格的Eclipse外观,是不是有耳目一新的感觉?如何做到的? 需要给Eclipse安装 ...
- 使用EventLog组件读写事件日志
实现效果: 知识运用: Eventlog类的SourceExists方法 //确定指定的事件源是否已在本地计算机注册 public static bool SourceExists(string s ...
- python_94_类变量实例变量
class Role: n=123#类变量 name='我是类name' list=[] def __init__(self,name,role,weapon,life_value=100,money ...
- python 嵌套作用域 闭包函数
#闭包函数 def multiplier(factor): def multiplyByFactory(number): return number*factor return multiplyByF ...
- ☆☆☆Dojo中define和declare的结合使用
在原生的js中是不可以创建类的,没有class这个关键字,但是在dojo中,dojo自定义了一个模块叫做dojo/_base/declare,用这个模块我们可以创建自己的类,实现面向对象编程. 单继承 ...
- localStorage对象
localStorage对象存储的数据没有时间限制,比如:它可以存储到第二天,第三周,半年,或二三年,只要您的电脑没有重新安装系统或更换硬盘,数据仍然会被保留着. 实例: <!DOCTYPE h ...
- 获取页面的title值
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...