python学习笔记(10)--组合数据类型(集合类型)
集合类型
集合是多个元素的无序组合,每个元素唯一,不存在相同类型,每个元素是不可变类型。用{}表示,元素间用逗号分隔。建立结合类型用{},或set函数,如果是空集合必须用set。
>>> a={'a','b'}
>>> a
{'a', 'b'}
>>> b=set("pypy123")
>>> b
{'p', '', 'y', '', ''}
集合操作符:
S|T 返回一个新集合,包括在集合S和T中的所有元素
S-T 包括在集合S但不在T中的元素
S&T 包括同时在集合S和T中的元素
S^T 包括集合S和T中的非相同元素
S<=T或S<T 返回True/False,判断S和T的子集关系
S>=T 或S>T 返回True/False,判断S和T的包含关系
增强操作符:
S |=T
S -=T
S &= T
S ^=T
集合处理方法:
S.add(x) 如果x不在S中,将x增加到S
S.discard(x) 移除S中元素x,如果x不在集合中,不报错
S.remove(x) 移除S中元素x,如果x不在集合中,产生KeyError异常
S.clear() 移除S中所有元素
S.pop() 随机返回S的一个元素,更新S,若S为空产生KeyError异常
S.copy() 返回S的一个副本
len(S) 返回集合的元素个数
x in S 在,返回True
x not in S 不在返回True
set(x) 将x变量转换为集合类型
>>> b
{'', 'y', '', ''}
>>> try:
while True:
print(b.pop(),end="")
except:
pass
2y13
>>> b
set()
集合类型应用场景:
包含关系比较:‘p’ in {'p','y',123} {‘p’, 'y'} >= {'p','y',123}
数据去重:将有重复元素的列表类型转换为没有重复元素的集合类型,如果需要使用列表类型,再将集合类型转换为列表类型
>>> ls=['p', 'y', 'y', 'p', ]
>>> ls
['p', 'y', 'y', 'p', ]
>>> s=set(ls)
>>> s
{'y', , 'p'}
>>> It=list(s)
>>> It
['y', , 'p']
python学习笔记(10)--组合数据类型(集合类型)的更多相关文章
- Python学习笔记(三)字符串类型及其操作(2)
1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...
- PYTHON 学习笔记3 元组、集合、字典
前言 在上一节的学习中.学习了基本的流程控制语句,if-elif-else for while 等,本节将拓展上一节学习过的一些List 列表当中操作的一些基本方法,以及元祖.序列等. 列表扩展 我们 ...
- Python学习笔记:02数据类型
Python 数据类型 python中标准的数据类型有 基础类型 整型(长整型) 浮点型 复数型 布尔型 序列类型 字符串 列表 元组 字典 整型 整型和长整型并不严格区分,整型int的表达范围和计算 ...
- Guava学习笔记:Guava新增集合类型-Multimap
在日常的开发工作中,我们有的时候需要构造像Map<K, List<V>>或者Map<K, Set<V>>这样比较复杂的集合类型的数据结构,以便做相应的业 ...
- Python学习笔记摘要(一)类型 字符串 函数 列表 深浅拷贝
python中的对象和类型 在python中,认为系统中的每一个"东西"都是一个对象,在python中,"对象"有着特殊的意义,python中的对象有: 一个标 ...
- Guava学习笔记:Guava新增集合类型-Bimap
BiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构. 通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们就 ...
- Guava学习笔记:Guava新增集合类型-Multiset
Guava引进了JDK里没有的,但是非常有用的一些新的集合类型.所有这些新集合类型都能和JDK里的集合平滑集成.Guava集合非常精准地实现了JDK定义的接口.Guava中定义的新集合有: Multi ...
- objective-C学习笔记(八) 集合类型 Collection Types
OBJC的集合类型: 1.数组 Array 2.Set 3.键值对 Dictionary 数组:OC中的数组被定义为class,引用类型.索引从0开始,访问越界会抛出运行时异常. NSArray的元素 ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
随机推荐
- Python单元测试框架 unittest详解
一 整体结构概览 unittest原名为PyUnit,是由java的JUnit衍生而来.对于单元测试,需要设置预先条件,对比预期结果和实际结果. TestCase :通过继承TestCase类,我们可 ...
- forall 与 for loop 案例
create table a_tab(ver number,id number);create table b_tab(ver number,id number);set timing on DECL ...
- GT常见问题
1.需要root? 大部分核心功能都需要root权限.需要root的功能有:FPS.Mem Assistant.Logcat日志.抓包.流畅度获取(未开放). 2.root工具总弹出提示框要确认roo ...
- switch and checkbox
import 'package:flutter/material.dart'; void main()=>runApp(MyApp()); class MyApp extends Statele ...
- Java关键字(三)——static
我们说Java是一种面向对象编程的语言,而对象是把数据及对数据的操作方法放在一起,作为一个相互依存的整体,对同类对象抽象出其共性,便是Java中的类,我们可以用类描述世间万物,也可以说万物皆对象.但是 ...
- WCF无.SVC文件服务激活,及不添加服务引用调用WCF
一,新建WCF服务引用程序 1,删除.svc文件,全部删除. 2,新建 IService 类 namespace TestWcf { [ServiceContract] public interfac ...
- H5 video标签的属性
35-video标签 video标签的属性 src: 用于告诉video标签需要播放的视频地址 autoplay: 用于告诉video标签是否需要自动播放视频 controls: 用于告诉video标 ...
- c++学习之字符串拼接
在这里,强调这样一个问题: 可以看出,c++中,定义了string类,string 类方便我们进行字符串的一些操作,而不是像C语言中采用字符数组的方式或者指针的方式,通过上面的一些描述,可以发现: s ...
- selenium处理alert弹出框
import time from selenium import webdriver driver =webdriver.Chrome(r"D:\工具包\chromedriver.exe&q ...
- 自签名证书 nginx tomcat
给Nginx配置一个自签名的SSL证书 - 廖雪峰的官方网站 https://www.liaoxuefeng.com/article/0014189023237367e8d42829de24b6eaf ...