Python 3 集合基础和概念!

Python 3中,集合是无序的,所以不能进行切片和索引操作。

创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的;frozenset()方法创建的集合是不可改变的。

代码可以看出来,看上去创建的集合是一个列表,实际上我们用type()就可以看出,创建的是一个set对象,不懂的话可以大致理解为列表。

>>> a = set(‘hello‘)
>>> a
{‘l‘, ‘h‘, ‘o‘, ‘e‘}

set()还支持add方法和update方法,两个对比一下,区别还是很明显的,add方法是把参数整个加入到集合中,update方法是把参数拆分然后加入到集合中:

>>> a = set(‘hello‘)
>>> a.add(‘,world‘)
>>> a
{‘l‘, ‘h‘, ‘,world‘, ‘o‘, ‘e‘}
>>> a = set(‘hello‘)
>>> a.update(‘world‘)
>>> a
{‘r‘, ‘w‘, ‘d‘, ‘l‘, ‘h‘, ‘o‘, ‘e‘}

remove方法,删除指定的字符串:

>>> a = set(‘hello‘)
>>> a.remove(‘l‘)
>>> a
{ ‘h‘, ‘o‘, ‘e‘}

数学中常用的交集、并集、差集对集合来说也是适用的:

交集,返回的是变量a和变量b的共有部分:

>>> a = set(‘abcdef‘)
>>> b = set(‘bcdefh‘)
>>> a & b
{‘f‘, ‘d‘, ‘b‘, ‘c‘, ‘e‘}

并集,返回的是变量a和变量b去掉共有部分之后的剩余部分(因为a和b的值大部分是重复的,所以删除就是那部分重复的):

>>> a = set(‘abcdef‘)
>>> b = set(‘bcdefh‘)
>>> a | b
{‘a‘, ‘f‘, ‘d‘, ‘b‘, ‘h‘, ‘c‘, ‘e‘}

差集,返回的是a变量中有但是b变量中没有的部分:

>>> a = set(‘abcdef‘)
>>> b = set(‘bcdefh‘)
>>> a - b
{‘a‘}

set的去重功能,在c列表中,1和2是有重复的,所以我们把列表转化为集合之后,就会自动删除重复的部分(想转换回列表的话,直接list(set(c))就行了):

>>> c = [1,2,3,4,1,2]
>>> set(c)
{1, 2, 3, 4}
时间: 2024-10-10 10:19:33

Python 3 集合基础和概念!的相关文章

Python 之路 Day06 类基础和概念

本章大纲: 类的对象和类的区别 类的名称空间 __dict__ 类的对象的名称空间 __dict__ 绑定方法和非绑定方法 类和类型 变量变形(封装变量,控制变量引用)__ 类的绑定方法 id命令分析内存地址(类的名称空间属性和类对象名称空间属性内存指向) is命令(比较内存地址指向) property类对象的属性方法 staticmethod类对象的非绑定方法 __str__自定义str(self)  类对象字符串格式打印 类的继承 __bases__显示类的继承 类的继承查找顺序 类的继承查

python之路-基础(一):文件处理、列表、元组、字典、set集合

文件处理                                                                                                                                   文件处理模式: [ r  ]  以只读模式打开(只能读)                          [rb  ] 以二进制读模式打开 [ w ]  以只写模式打开(写之前清空文件)                 [wb

给深度学习入门者的Python快速教程 - 基础篇

实在搞不定博客园的排版,排版更佳的版本在: https://zhuanlan.zhihu.com/p/24162430 Life is short, you need Python 人生苦短,我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用. 5.1.1 Python简史 Python是一门解释型的高级编程语言,特点是简单明确.Python作者是荷兰人Guido van Rossum,1

python开发面向对象基础:接口类&抽象类&多态&多继承

一,接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子类继承接口类,并且实现接口中的功能 开发中容易出现的问题 1 class Alipay: 2 ''' 3 支付宝支付 4 ''' 5 def pay(self,money): 6 print('支付宝支付了%s元'%money) 7 8 class Applepay: 9 ''' 1

python网络编程基础(线程与进程、并行与并发、同步与异步)

python网络编程基础(线程与进程.并行与并发.同步与异步) 目录 线程与进程 并行与并发 同步与异步 线程与进程 进程 前言 进程的出现是为了更好的利用CPU资源使到并发成为可能. 假设有两个任务A和B,当A遇到IO操作,CPU默默的等待任务A读取完操作再去执行任务B,这样无疑是对CPU资源的极大的浪费.聪明的老大们就在想若在任务A读取数据时,让任务B执行,当任务A读取完数据后,再切换到任务A执行.注意关键字切换,自然是切换,那么这就涉及到了状态的保存,状态的恢复,加上任务A与任务B所需要的

Python:集合操作总结

集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(set)是允许添加和删除元素的:而对于不可变集合(frozenset)则不允许对集合进行添加和删除操作. 二.集合的创建 与列表([]).元组(())和字典({})不同,集合的创建没有特别的语法格式,因此如果想要创建集合就必须调用创建集合所需的工厂函数:set()和frozenset()  [注]:这

玩蛇(Python)笔记之基础Part3

玩蛇(Python)笔记之基础Part1 一.集合 1.set 无序,不重复序列 {}创建,直接写元素 2.set功能 __init__()构造方法,,使用强制转换就会调用此方法 1 set1 = {'year', 'jiujiujiu'} 2 print(type(set1)) 3 # 创建集合 4 s = set() # 创建空集合 5 li = [11, 22, 11, 22] 6 s = set(li) set 3.集合的基本操作 1 # 操作集合 2 s1 = set() 3 s1.a

Python<3>字符串基础

字符串是单个字符的字符串序列,有序字符的集合. Python允许字符串包括在双引号或单引号中(代表相同的东西). 序列操作 <1>索引 正向索引,反向索引 <2>分片 包括左边,不包括右边 左边默认为0,右边默认为len(str) 可以设置读取的间隔 <3>合并+.重复* 不可变性 创建后就不能被改变,不能对某一位置赋值 常用表达式 <1>str='' :空字符串 <2>str1.find(str2):返回子字符串的偏移量 <3>st

黑马程序员——Java集合基础知识之Map

Map概念 要同时存储两个元素Key和Value,他们之间有映射关系,每个键不能重复,每个键只能映射到一个值. 当数据之间存在映射关系的时候,考虑使用Map集合. Map常用方法 如果添加的键原来有值,后添加的值会覆盖前面的值,并返回之前的值.put会返回来先添加的值,后添加的值会覆盖原有的值. Map tm =new TreeMap(); tm.put (key, value);//MAP没有add tm.remove (key) ;//去除一个key和对应的value,若不存在key返回nu