Python集合类型的操作与应用

一、Python集合类型

Python中的集合类型是一个包含0个或多个数据项的无序的、不重复的数据组合,其中,元素类型只能是固定数据类型,如整数、浮点数、字符串、元组等,相反,如列表、字典和集合类型本身都是可变数据类型,因此不能作为集合元素使用。

1.无序性

集合是无序组合,没有索引和位置的概念,不能分片,集合中的元素可以动态增加或删除。集合用大括号“{}”表示。

s={1,2,3,'a','b',(5,'c')}

print(s)

由上例可知,集合元素打印后的顺序和定义顺序可以不同。

2.不重复性

集合元素是独一无二的,使用集合类型可以过滤掉重复元素。set(x)函数用于生成集合,输入任意组合数据类型的参数,返回一个无序不重复的集合。

s=set('omg')

print(s)

s=set(('human','animal','water','oil'))

print(s)

二、集合类型的关系操作

1.S-T或S.difference(T):S与T的差集。返回一个新集合,包括在集合S中但不在集合T中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S-T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.difference(T))

S={1,2,3,4}

T={2,3,4,5}

print(T-S)

或者

S={1,2,3,4}

T={2,3,4,5}

print(T.difference(S))

2.S&T或S.intersection(T):S与T的交集。返回一个新集合,包括同时在集合S和集合T中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S&T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.intersection(T))

3.S|T或S.union(T):S与T的并集。返回一个新集合,包括集合S和集合T中的所有元素。

S={1,2,3,4}

T={2,3,4,5}

print(S|T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.union(T))

4.S^T或S.symmetric_difference(T):S与T的对等差集,包括集合S和集合T中的元素,但不包括同时在其中的元素。

S={1,2,3,4}

T={2,3,4,5}

print(S^T)

或者

S={1,2,3,4}

T={2,3,4,5}

print(S.symmetric_difference(T))

5.S<=T或S.issubset(T):如果S与T相同或S是T的子集,返回True,否则返回False,可以用S<T判断S是否是T的真子集。

S={1,2,3}

T={1,2,3,4,5}

print(S<=T)

或者

S={1,2,3}

T={1,2,3,4,5}

print(S.issubset(T))

6.S>=T或S.issuperset(T):如果S与T相同或S是T的父集,返回True,否则返回False,可以用S>T判断S是否是T的真父集。

S={1,2,3}

T={1,2,3,4,5}

print(S>=T)

或者

S={1,2,3}

T={1,2,3,4,5}

print(S.issuperset(T))

三、集合类型的操作函数或方法

1.S.add(x):如果数据项x不在集合S中,将x增加到s中。

S=set((1,2,3,'omg','ok','yes'))

S.add(4)

print(S)

2.S.clear():移除S中的所有数据项。

S=set((1,2,3,'omg','ok','yes'))

S.clear()

print(S)

3.S.copy():返回集合S的一个副本。

S=set((1,2,3,'omg','ok','yes'))

S.copy()

print(S)

4.S.pop():随机返回集合中S的一个元素,如果S为空,产生KeyError异常。

S=set((1,2,3,'omg','ok','yes'))

T=S.pop()

print(T)

#打印除被pop出的元素以外的所有元素的集合

S=set((1,2,3,'omg','ok','yes'))

S.pop()

print(S)

#如果S为空,产生KeyError异常

S=set(())

T=S.pop()

print(T)

5.S.discard(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,不报错。

S=set((1,2,3,'omg','ok','yes'))

S.discard('omg')

print(S)

#如果x不在集合S中,不报错

S=set((1,2,3,'omg','ok','yes'))

S.discard('python')

print(S)

6.S.remove(x):如果数据项x在集合S中,移除该元素;如果x不在集合S中,产生KeyError异常。

S=set((1,2,3,'omg','ok','yes'))

S.remove('omg')

print(S)

#如果x不在集合S中,产生KeyError异常

S=set((1,2,3,'omg','ok','yes'))

S.remove('python')

print(S)

7.S.isdisjoint(T):如果集合S与集合T没有相同元素,返回True,否则返回False。

S=set((1,2,3,'omg','ok','yes'))

T=set((4,5,6,'do','true'))

print(S.isdisjoint(T))

S=set((1,2,3,'omg','ok','yes'))

T=set((1,2,5,6,'do','ok','true'))

print(S.isdisjoint(T))

8.len(S):返回集合S的元素个数。

S=set((1,2,3,'omg','ok','yes'))

print(len(S))

9.x in S:如果x是集合S的元素,返回True,否则返回False。

S=set((1,2,3,'omg','ok','yes'))

print(3 in S)

S=set((1,2,3,'omg','ok','yes'))

print('python' in S)

10.x not in S:如果x不是集合S的元素,返回True,否则返回False。

S=set((1,2,3,'omg','ok','yes'))

print(3 not in S)

S=set((1,2,3,'omg','ok','yes'))

print('python' not in S)

集合类型主要用于成员关系测试、元素去重和删除数据项。

1.成员关系测试

S={1,2,3,'omg','ok','yes'}

T='omg' in S

print(T)

2.元素去重

S={1,2,3,'omg','ok','yes',2,'omg'}

T=set(S)

print(T)

3.删除数据项

#去重同时删除数据项

S={1,2,3,'omg','ok','yes',2,'omg'}

T=set(S)

P=tuple(T-{'ok'})

print(P)

Python集合类型的操作与应用的更多相关文章

  1. redis:set集合类型的操作(无序集合)

    1. set集合类型的操作(无序集合) 集合具有无序性(没有顺序).确定性(描述是确定的).唯一性(没有重复的元素) 1.1. sadd key member [member ...] 语法:sadd ...

  2. redis:order set有序集合类型的操作(有序集合)

    1. order set有序集合类型的操作(有序集合) 有序集合是在无序集合的基础上加了一个排序的依据,这个排序依据叫score,因此声明一个集合为有序集合的时候要加上score(作为排序的依据) 1 ...

  3. python集合类型

    集合类型简介 集合也是容器,其内元素都是无序.唯一.不可变的.它常用来做成员测试.移除重复数据.数据计算(比如交集.并集.差集). 集合Set是dict的无value版.集合也使用大括号包围: > ...

  4. 遇见Python集合类型

    Python目前有两种内置集合类型,set和frozenset. Ⅰ.两者区别 set是可变的,没有哈希值,其内容可以使用add()和remove()这样的方法来改变,所以不能被用作字典的键或其他集合 ...

  5. 『无为则无心』Python序列 — 22、Python集合及其常用操作

    目录 1.Python集合特点 2.Python集合的创建 3.操作集合常用API (1)增加数据 @1.add()方法 @2.update()方法 (2)删除数据 @1.remove()方法 @2. ...

  6. 代码与图详解性能之Python集合类型(list tuple dict set generator)

    Python内嵌的集合类型有list.tuple.set.dict. 列表list:看似数组,但比数组强大,支持索引.切片.查找.增加等功能. 元组tuple:功能跟list差不多,但一旦生成,长度及 ...

  7. Python集合的常用操作

    字典常用的就是,他的去重. set集合是python的一个基本数据类型. set中的元素是不重复的.⽆无序的.⾥面的元素必须是可hash的(int, str, tuple,bool). 我们可以这样来 ...

  8. python集合set相关操作

    定义: 1.不同元素组成 2.无序 3.集合中的元素必须是不可变类型 创建集合 1 s = {1,2,3,4,5,6,7,8} 1.定义可变集合 1 2 3 >>> set_test ...

  9. 第3章 02 python字符串类型及操作

    字符串切片 取字符串从结尾到开头,相当于字符串逆序 转义符 转义符表达特定字符的本意 转义符    \“      ---->    ” 字符串操作符 例子: 获取星期字符串 定义星期 获取用户 ...

随机推荐

  1. 为什么JDK动态代理中要求目标类实现的接口数量不能超过65535个

    先明确几个概念: Class文件是一组以8字节为基础单位的二进制流 各个数据项目严格按照顺序紧凑排列在class文件中 中间没有任何分隔符,这使得class文件中存储的内容几乎是全部程序运行的程序 J ...

  2. 【Vuejs】350- 学习 Vue 源码的必要知识储备

    前言 我最近在写 Vue 进阶的内容.在这个过程中,有些人问我看 Vue 源码需要有哪些准备吗?所以也就有了这篇计划之外的文章. 当你想学习 Vue 源码的时候,需要有扎实的 JavaScript 基 ...

  3. GitHub上传自己的项目

    git下载地址:https://git-scm.com/downloads 1.下载git,直接下一步进行安装 2.安装完成后,双击git-bash.exe运行 3.cd进入你的项目路径 4.输入 g ...

  4. 如何使用Jmeter进行压力测试

    Jmeter做压力测试的操作:Jmeter不仅可以做接口测试,还可以做压力测试,下面介绍介绍如何jmeter进行简单地压力测试.具体步骤如下: 第一步:添加请求,这里不介绍具体步骤,详见(https: ...

  5. Windows10 中的字母映射表

    有很多朋友为寻找特殊字符串而感到烦恼, windows10中的字符映射表有所有字体 包含的特殊符号 windows键 + R键 输入 charmap 点击确定 即可出现 字母映射表 可在字符的下拉按钮 ...

  6. webpack学习_模块热替换(Hot Module Peaplacement)

    模块热替换(Hot Module Replacement 或 HMR) 是webpack提供的最有用的功能之一.允许在u女性是更新各种模块,而无需进行完全刷新. 启用HMR 承接之前的代码 webpa ...

  7. Elasticsearch 语法指南(全)

    所有的语句默认都是没有用户名和密码,如果你的 es 集群做了安全认证的话,请在每一个 crul 后面加上 -u username:password 例如: curl -u admin:123456 - ...

  8. 在 Java 中如何比较日期?

    在 Java 中有多种方法可以比较日期,日期在计算机内部表示为(long型)时间点--自1970年1月1日以来经过的毫秒数.在Java中,Date是一个对象,包含多个用于比较的方法,任何比较两个日期的 ...

  9. Visual Studio 2019使用码云设置过滤忽略的文件或文件夹(ignore file)

    Visual Studio 2019使用码云的时候,会遇到 “Git failed with a fatal error.error: open(".vs/{{项目名称}}/Server/s ...

  10. oop面向对象【接口、多态】

    今日内容 1.接口 2.三大特征——多态 3.引用类型转换 教学目标 1.写出定义接口的格式 2.写出实现接口的格式 3.说出接口中成员的特点 4.能够说出使用多态的前提条件 5.理解多态的向上转型 ...