定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key

1.不同元素组成

2.无序

3.集合中元素必须是不可变类型(数字,字符串,元组)

特性:集合的目的是讲不同的值放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值。

集合通过set(iterable)方法创建,参数iterable为可迭代对象。

s = set('hello')
print(s) # 输出结果:{'l', 'o', 'e', 'h'} s = set(['alex', 'alex', ''])
print(s) # 输出结果:{'alex', '123'}

集合的方法

add(self,element) 添加方法

s = {1,2,3,4,5,6}
s.add('')
print(s) #输出结果:{1, 2, 3, 4, 5, 6, '3'}

clear(self) 清空方法

s = {1,2,3,4,5,6}
s.clear()
print(s) #输出结果:set()

copy(self) 拷贝/复制

s = {1,2,3,4,5,6}
s1 = s.copy()
print(s1) #输出结果:{1, 2, 3, 4, 5, 6}

pop(self) 随机删除一个元素

s = {'s',1,2,3,4,5,6}
s.pop()
print(s) #输出结果:{2, 3, 4, 's', 5, 6}

remove(self,element) 删除指定元素,如果给的元素不存在,那么删除会报错

s = {'ss',1,2,3,4,5,6}
s.remove('ss')
print(s) #{1, 2, 3, 4, 5, 6}
s.remove('')
print(s) #报错

discard(self,element) 删除指定元素,如果给的元素不存在,不会报错

s = {'ss',1,2,3,4,5,6}
s.discard('ss')
print(s)
s.discard('')
print(s)

python_l = ['','','']
linux_l = ['','','']

把上面的列表转换成集合 set

p_l = set(python_l)
l_l = set(linux_l)

求交集intersection(self,s)

print(p_l.intersection(l_l))   #{'123', '456'}   求集合交集
print(p_l&l_l) #符号法

求并集union(self,s)

print(p_l.union(l_l))   #{'456', '258', '789', '123'}
print(p_l|l_l) # 符号法

求差集difference(self,s)

print("差集",p_l-l_l)
print(p_l.difference(l_l)) print("差集",l_l-p_l)
print(l_l.difference(p_l))

交叉补集
print(p_l.symmetric_difference(l_l))
print(p_l^l_l) #符号法
difference_update()  求完差集之后更新下相关集合名词。
intersection_update()求完交集之后更新下相关集合名词。 isdisjoint(self,s) 求2个集合是否有公有部分,如果没有,返回True.
# s1 ={1,2}
# s2 ={3,5}
# s3 = s1.isdisjoint(s2)
# print(s3) #True

issubset()方法用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。

s1={1,2}
s2 = {1,2,3}
print(s1.issubset(s2)) #s1是不是s2的子集
#s1<=s2 或者说 s1是s2的子集,s2是s2的父集 #issuperset(self,s)
print(s2.issuperset(s1)) #s2是不是s1的父集

update()按指定集合来更新,可以更新多个值, 区别于add()只能加一个值

s1 ={1,2}
s2 = {1,2,3}
s1.update(s2)
print(s1) # {1,2,3}
集合默认用set生成的是可变类型的,
frozenset 也可以生成不可变类型。 也就是没法使用pop remover add等方法
# s=frozenset('hello')
# print(s)

列表去重复操作

names =['alex','alex','wupeiqi']
names = list(set(names))
print(names)
 

python全栈开发笔记---------数据类型-----集合set的更多相关文章

  1. python全栈开发笔记---数据类型--综合练习题

    一.有两个列表 l1 = [11,22,33]       l2 = [22,33,44] a. 获取内容相同的元素列表 for item in l1: if item in l2: print(it ...

  2. python全栈开发笔记---------数据类型---字典方法

    def clear(self) 清空字典里所有元素 # info = { # "k1":18, # "k2":True, # "k3":[ ...

  3. python全栈开发笔记---------数据类型-----字典dict

    字典 #dict #1.基本结构 info= { "k1" : "v1", #键值对 "k2" : "v2" } ### ...

  4. python全栈开发笔记---------数据类型****整理****

    一.数字 int(..) 二.字符串 replace/find/join/strip/startswith/split/upper/lower/format tempalet ='i am {name ...

  5. python全栈开发笔记----基本数据类型---列表List

    #list 是 类 ,列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但 ...

  6. python全栈开发笔记----基本数据类型---列表方法

    #list 类中提供的方法 #参数 1.def append(self, *args, **kwargs)原来值最后追加#对象..方法(..) #li对象调用append方法 li = [11,22, ...

  7. python全栈开发笔记---基本数据类型--字符串魔法

    字符串: def capitalize(self, *args, **kwargs) test = "aLxs" v = test.capitalize() #capitalize ...

  8. python全栈开发笔记---基本数据类型--数字型魔法

    数字  int a1 =123 a2=456 int 讲字符串转换为数字 a = " #字符串 b = int(a) #将字符串转换成整形 b = b + 1000 #只有整形的时候才可以进 ...

  9. python全栈开发笔记---------基本数据类型

    基本数据类似包括: 字符串(str) 数字(int) 列表(list) 元祖(tuple) 字典(dict) 布尔值(bool) 字符串(引号): name = "我是某某某" n ...

随机推荐

  1. SQL Server 之 事务与隔离级别实例讲解

    SQL Server 之 事务与隔离级别实例讲解 SQL Server 实现了6个隔离级别来防止并发情况下,类似企图并发的访问或修改同一数据时问题的发生.本文将带你体验全部6个隔离级别.正如你接下来将 ...

  2. 52.JQ---向上滚动显示,向下滚动隐藏

    js: var windowTop = 0;$(window).scroll(function() { var scrolls = $(this).scrollTop(); if(scrolls &l ...

  3. 退出unity运行

    public void GetExit()//退出运行 { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false;//用于退 ...

  4. ajax return 的问题

    平时都是在AJAX里执行逻辑,实然想到能不能return返回数据呢? ajax 是异步请求,return拿值得时候 ajax并没有取到值,所以是undefind. 需要把ajax的请求方式改为同步 v ...

  5. MSP430入门准备

    为什么选择MSP430? 低功耗是最主要原因,那有人说了,低功耗的片子多了去了,还有比这更低功耗的呢,只能说, 一个是精力有限, 二是430低功耗做的不差,能满足大部分项目的需求, 三是网上430的资 ...

  6. Node.js基础学习一之Get请求

    本人从事的是前端开发,这段时间公司开发项目比较少所以就想着学点东西,然后就想到了Node.js ,跟着菜鸟教程学了点,不过我觉得最好的学习方法是带着需求来学习. 其实和服务端打交道无非就是能有一个可以 ...

  7. php 去除变态空格字符方法,空格trim不掉问题解决思路

    前言:今天过滤一段文本,后面有2个空格,用trim去不掉,用preg_match也去不掉,去网上翻阅了无数的方法,终于找到了非常好的一个解决方法.该文章来源于https://my.oschina.ne ...

  8. WINDBG常用方法

    前言:windbg大家都很熟悉,它是做windows系统客户端测试的QA人员很应该掌握的定位程序崩溃原因的工具, 网上也有很多资料,但是真正适合QA阅读和实用的资料不多,我把我认为最重要最应该掌握的结 ...

  9. Canonical Coin Systems【完全背包】

    问题 C: Canonical Coin Systems 时间限制: 1 Sec  内存限制: 128 MB 提交: 200  解决: 31 [提交] [状态] [命题人:admin] 题目描述 A ...

  10. Learning-Python【32】:进程理论基础

    什么是进程 进程就是一个程序在一个数据集上的一次动态执行过程.是用来描述程序执行过程的虚拟概念.进程的概念起源于操作系统,进程是操作系统最核心的概念,操作系统其它所有的概念都是围绕进程来的.进程一般由 ...