python课堂整理7---集合

前面小节:

sep 用来控制每个元素间的间隔符号

print("alex", "dabai", "liu", sep = "")

按可变不可变:

1.可变:列表,字典

2.不可变:字符串, 数字, 元组

修改了变量的值,而id号跟着改变,即不可变类型

name = ‘alex‘
print(id(name))
name = ‘sb‘
print(id(name))

按访问顺序:

1.顺序访问:字符串, 列表, 元组

2.映射:字典

3.直接访问:数字

存放元素个数:

容器类型:列表,元组, 字典

原子:数字,字符串

#################集合 ###################

一、集合  set

1.不同的元素组成

2.无序

3.集合中元素必须是不可变类型

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

内置函数:set()   也有简单的去重作用,不在意顺序的话

s = set(‘hello‘)
print(s)
s1 = set(["alex", "alex", "sb"])
print(s1)

二、集合的魔法

1. add,  向集合添加元素(只能更新一个)

s = {1, 2, 3, 4, 5, 6}
s.add(‘alex‘)
print(s)

2. clear 清空集合

s.clear()

3. 拷贝集合

s1 = s.copy()

4. pop随机删除元素

s = {1, 2, 3, 4, 5, 6}
v = s.pop()
print(s,v)

5. remove 指定元素删除,删除元素不存在时会报错

s = {1, 2, 3, 4, 5, 6}
s.remove(3)
print(s)

6. discard 指定元素删除,但是要删的元素不存在也不会报错

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

7. 交集

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.intersection(s2)
print(n)

或者:&

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 & s2
print(n)

8. 并集

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.union(s2)
print(n)

或者:|

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 | s2
print(n)

9.求差集(s1 中有而s2中没有)

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.difference(s2)
print(n)

或者:-

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 - s2
print(n)

10.交叉补集(s1 和 s2 的全部,减去两者的交集)

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.symmetric_difference(s2)
print(n)

或者   ^

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 ^ s2
print(n)

11.更新差集

s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
s1.difference_update(s2)
s1 = s1 - s2
print(s1)
print(s1)

12. s1 是否是s2的子集

s1 = {1, 2, 3}
s2 = {1, 2, 3, 4, 6}
n = s1.issubset(s2)
print(n)

13. s2是否是s1的父集

s1 = {1, 2, 3}
s2 = {1, 2, 3, 4, 6}
n = s2.issuperset(s1)
print(n)

14. 更新多个值,参数可以是列表、元组等

s1 = {1, 2, 3}
s2 = {1, 2, 3, 4, 6}
s1.update(s2)
print(s1)

15. 定义一个不可变的集合(不能增删改)

s = frozenset("hello dabai")
print(s)

原文地址:https://www.cnblogs.com/dabai123/p/10984879.html

时间: 2024-11-09 01:48:10

python课堂整理7---集合的相关文章

python课堂整理4---列表的魔法

一.list   类, 列表 li = [1, 12, 9, "age", ["大白", "小黑"], "alex"] 1. 中括号括起来 2. 逗号分割每个元素 3. 列表中的元素可以是数字.字符串.列表.布尔值等 4. 索引取值 5. 切片取值---->得到的还是列表 6. for循环 7. while 循环 8. 支持 in 操作 列表在内存中是以链表形式存储,可以被修改 二.列表灰魔法 1.修改 li = [1,

python课堂整理16---内置函数

1. abs :求绝对值 print(abs(-1)) 2. all()传入一个可迭代对象,对该对象进行bool值运算,若都为True 就返回True,有一个为假,就返回False print(all([12,'asds',345])) print(all('')) #特例 若参数为空也返回True print(all((0,))) print(all([])) 3. any () 和all()相反,只要有一个为真就返回Ture print(any([1231, 0])) print(any([

python课堂整理23----模块介绍

一.模块 概念:一个 .py文件就被称之为一个模块 分三类:•python标准库 •第三方模块 •应用程序自定义模块 例图中的study1.py称为执行文件,一般命名为 bin.py  , cal.py称为被调用文件,里面一般写功能代码 二.模块的调用方式: import的作用: ①执行对应的文件(先把调用文件执行一遍) ②引入变量名 导入方式: import <模块名>(as  别名) from <模块名> import <函数名>(as 别名) from <模

python课堂整理26 ---json、pickle、shelve模块(序列化处理)

一.序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,python中叫pickling 序列化之后就可以把序列化后的内容写入磁盘或通过网络传输到别的机器上 反序列化:unpickling,也就是loads的过程 二.json模块 功能:处理成字符串 可以让不同语言间进行数据交换 import json dic = {"name": "alex"} data = json.dumps(dic) print(data, type(data)) 经js

python课堂整理28----re模块

一.正则(re) 就其本质而言,正则表达式(或re)就是一种小型的.高度专业化的编程语言,它内嵌在python中,并通过re模块实现. 正则表达式模式被编译成一系列的字节码,然后由用c语言编写的匹配引擎执行. 用途:模糊匹配 元字符:. ^ $ * + ? {} [] |  () \ ♦通配符 ‘ . ’(除\n以外都可以代替) 一个点代表一个其它任意字符 两个点代表2个字符 <以下程序都是在pycharm交互环境下运行> findall 会匹配所有内容,符合条件的都返回到一个列表 impor

python课堂整理33----面向对象(我的对象又在哪里)

一.面向对象设计(Object Oriented Design) 将一类具体事物的数据和动作整合到一起,即面向对象设计 理解两个概念: 类:把一类事物的相同的特征和动作整合到一起就是类,类就是一个抽象的概念 对象:就是基于类而创建的一个具体的事物(具体存在的),也就是特征和动作整合到一起 例: def people(gender,country): #定义一个“人”的类 def init(gender, country): #相当于初始化 dir = { #人的特征和动作 "gender&quo

python课堂整理3---字符串魔法

字符串魔法 1.首字母大写功能 test = "alex" v = test.capitalize() print(v) 2.所有变小写(casefold更厉害,可以将很多未知的其他国家字符变小写) test = "ALex" v1 = test.casefold() print(v1) v2 = test.lower() print(v2) 3.设置宽度,并将内容居中,20代指总长度,*为空白位置填充一个字符,可有可无. test = "alex&quo

python课堂整理5---元组

一.元组   Tuple tu = (111, 22, 33, "alex", (11,22), [(33, 44)], True, ) 元组元素不可被修改,不能被增加或删除 一般写元组的时候,推荐在最后加入“ , ” 支持索引取值 支持切片取值 可被 for 循环,是可迭代对象 #字符串转元组 s = "dabai" v = tuple(s) print(v) 用同样的方法,列表也可以转换为元组,元组也可以转换为列表 如果元组里只有字母,可以用join方法组合为新

python课堂整理7---字符串格式化

一.字符串格式化(% 和 format) 1. % s  主要接收字符串类型,也可以接收任意类型 tp1 = "i am %s my hobby is alex" % 'lhf' print(tp1) tp1 = "i am %s my hobby is %s" % ('lhf', 'dabai') print(tp1) . tp1 = "i am %s my age is %d" % ('lhf', 11) tp2 = "1 am %