1.定义

集合的关键字:set

集合主要作用:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

集合用大括号{}表示,元素间用逗号分隔。

建立集合类型用{}或set(),建立空集合,必须使用set()。

集合元素之间无序,每个元素唯一,不存在相同元素。

在python中,集合元素不可更改,不能是可变数据类型。

  -集合中的每个元素,一旦放入集合中,不可修改。

  -可变数据类型元素不可放入集合内。

2.集合创建方式

# 使用{}建立集合
A = {"python",123,("python",123)}
print(A) # 使用set()建立集合
# 注:set函数创建的集合,会将每个字符分开分别创建一个元素,集合中不存在相同集合,所以只保留一个相同元素,集合没有顺序,所以顺序是随机的
B = set("pypy123")
print(B) 结果:
{123, 'python', ('python', 123)}
{'3', '1', 'p', 'y', '2'}

3.集合操作符

a = t | s          # t 和 s的并集  
b = t & s # t 和 s的交集
c = t – s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)

效果也如下图所示:

4.增强型集合操作符

Python还提供了关系操作符外,python还提供了>  =  >=  <=  <
S<=T或S<T 返回True/False,判断S和T的子集关系
S>=T或S>T 返回True/False,判断S和T和包含关系

增强操作符如图所示:
增强操作符:使用赋值=符号,更新集合的元素

注:如果不使用增强操作符,两个集合进行运算,会生成一个新的集合。

5.集合处理方法

如图所示:

注:discard和remove的区别在于是否产生异常 如果出现异常,可以使用之前学过的try异常处理捕捉异常,所以这里很关键。

除此之外:
S.clear() 移除S集合中的所有元素
S.pop() 随机返回集合S中的一个元素,更新S,若S为空产生keyerror异常
除此之外还有:

# 基本操作:
s = set([3,5,9,10]) # 创建一个数值集合
t = set("Hello") # 创建一个唯一字符的集合
t.add('x') # 添加一项
s.update([10, 37, 42]) # 在s中添加多项 # 使用remove()
# 可以删除一项:
t.remove('H') # set的长度
len(s) # 测试 x 是否是 s 的成员
x in s # 测试 x 是否不是 s 的成员
x not in s # 测试是否 s 中的每一个元素都在 t 中
s.issubset(t)
s <= t # 测试是否 t 中的每一个元素都在 s 中
s.issuperset(t)
s >= t # 返回一个新的 set 包含 s 和 t 中的每一个元素
s.union(t)
s | t # 返回一个新的 set 包含 s 和 t 中的公共元素
s.intersection(t)
s & t # 返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.difference(t)
s - t # 返回一个新的 set 包含 s 和 t 中不重复的元素
s.symmetric_difference(t)
s ^ t # 返回 set “s”的一个浅复制
s.copy()

(16)-Python3之--集合(set)操作的更多相关文章

  1. 从头认识Spring-1.16 SpEl对集合的操作(1)-建立集合以及訪问集合的元素,以&lt;util:list/&gt;为例

    这一章节我们来讨论一下怎样建立集合以及訪问集合的元素? 1.建立集合? (1)domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch ...

  2. python3笔记十八:python列表元组字典集合文件操作

    一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle  #数据持久性模块 #封装的方法def OptionData(data,path):    # ...

  3. python3与Redis连接操作

    Python3之redis使用   简介 redis是一个key-value存储系统,和Memcache类似,它支持存储的value类型相对更多,包括string(字符串),list(链表),set( ...

  4. 第16章 List集合的总结和遍历

    第16章 List集合的总结和遍历 1.重构设计 根据Vector类,ArrayList类,和LinkedList类所具有的存储特点以及拥有的方法入手,发现共性往上抽取. 共同特点: 1.允许元素重复 ...

  5. paip.数组以及集合的操作uapi java php python总结..

    paip.数组以及集合的操作uapi 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

  6. Scala 运算符和集合转换操作示例

    Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为 ...

  7. Python3.x:SQLAlchemy操作数据库

    Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...

  8. Python3 IO编程之操作文件和目录

    如果我们要操作文件,目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如ls,cp等命令 如果要在python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令指示简单地调用了操作系 ...

  9. Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作

    1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...

随机推荐

  1. fiddler抓APP的https接口

    吐槽一下,fiddler这工具很蛋疼,用的时候很好用,出bug的时候死活抓不了: ①为了少踩坑,我们在官网下最新的fiddler,官网:Fiddler - Free Web Debugging Pro ...

  2. python序列(五)切片操作

    功能:截取列表中的任何部分. 切片适用于列表.元组.字符串.range对象等类型.. 格式:[::]切片使用两个冒号分隔的3个数字来完成. 第一个数字表示切片开始位置(默认为0). 第二个数字表示切片 ...

  3. Java:利用BigDecimal类巧妙处理Double类型精度丢失

    目录 本篇要点 经典问题:浮点数精度丢失 十进制整数如何转化为二进制整数? 十进制小数如何转化为二进制数? 如何用BigDecimal解决double精度问题? new BigDecimal(doub ...

  4. 线程 - AtomicInteger

    原理 AtomicInteger是如何使用非阻塞算法来实现并发控制的 性能提升 避免多线程的优先级倒置和死锁情况的发生 任然可能存在问题 ABA问题 CAS原理 调整具有竞争的并发应用程序的可伸缩性的 ...

  5. mysql存储过程定义者

    1. 执行update mysql.proc set DEFINER='root@%' WHERE NAME='p_update_rim_batch_log' AND db='otherdataonl ...

  6. [leetcode]236. Lowest Common Ancestor of a Binary Tree树的最小公共祖先

    如果一个节点的左右子树上分别有两个节点,那么这棵树是祖先,但是不一定是最小的,但是从下边开始判断,找到后一直返回到上边就是最小的. 如果一个节点的左右子树上只有一个子树上遍历到了节点,那么那个子树可能 ...

  7. 【转】PANDAS 数据合并与重塑(concat篇)

    转自:http://blog.csdn.net/stevenkwong/article/details/52528616 1 concat concat函数是在pandas底下的方法,可以将数据根据不 ...

  8. Android多线程消息处理机制

    (1)主线程和ANR 主线程:UI线程,界面的修改只能在主线程中,其它线程对界面进行修改会造成异常.这样就解决了多线程竞争UI资源的问题. 一旦主线程的代码阻塞,界面将无法响应,这种行为就是Appli ...

  9. Kafka知识总结及面试题

    目录 概念 Kafka基础概念 命令行 Kafka 数据存储设计 kafka在zookeeper中存储结构 生产者 生产者设计 消费者 消费者设计 面试题 kafka设计 请说明什么是Apache K ...

  10. Python之 time 与 datetime模块

    time与datetime模块 一.time 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏 ...