网站首页 > 技术文章 正文

有点长,适合收藏,然后自己慢慢在python下执行一遍,有收获。
1.集合
1.1 创建集合
1.2 集合(set)是一个无序的不重复元素序列。
1.3 可以使用大括号 { } 或者 set() 函数创建集合。
1.4 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
2.集合的特点一:去重==去除重复的数据
2.1 也就是,不允许有重复的数据时,建议采用集合的方式
2.2 类似的还有列表[],元组().
2.3 比如一组数据:10,20,30,40,50
2.3.1 集合{10,20,30,40,50}
s1={10,20,30,40,50}
2.3.2 列表[10,20,30,40,50]
s2=[10,20,30,40,50]
2.3.3 元组(10,20,30,40,50)
s3=(10,20,30,40,50)
2.3.4 操作如下:
>>> s1={10,20,30,40,50}
>>> s2=[10,20,30,40,50]
>>> s3=(10,20,30,40,50)
>>> print(s1)
{40, 10, 50, 20, 30} #无序的
>>> print(s2)
[10, 20, 30, 40, 50] #有序的
>>> print(s3)
(10, 20, 30, 40, 50) #有序的
>>>
3.集合的特点二:无序===没有下标的概念
3.1 如s1={10,20,30,40,50}
>>> print(s1)
{40, 10, 50, 20, 30} #无序的
3.2 继续添加数据
sn={10,20,30,40,50,60,70,80,90}
3.3 效果:
>>> sn={10,20,30,40,50,60,70,80,90}
>>> print(sn)
{70, 40, 10, 80, 50, 20, 90, 60, 30} #无序的
4.创建空集合
4.1 创建空集合,用set(),不能用{},因为{}是用来创建一个空字典。
4.2 如
>>> s4=set()
>>> print(s4)
set()
>>> print(type(s4)) #type函数,是判断类型
<class 'set'> #类型是集合set
>>> s5={}
>>> print(s5)
{}
>>> print(type(s5))
<class 'dict'> #类型是字典dict
>>>
5.集合的常见操作方法:增加数据的方法
5.1 add和update的方法
5.2 add方法------增加的是单一数据
5.2.1 s1={10,20,100}
s1.add(30) #增加30
print(s1)
s1.add(10) #增加10,追加已有的数据
print(s1)
5.2.2 效果
>>> s1={10,20,100}
>>> s1.add(30)
>>> print(s1)
{100, 10, 20, 30} #无序添加,任意位置的添加
>>> s1.add(10)
>>> print(s1)
{100, 10, 20, 30} #追加已有数据,去重特点,数据并没有增加,也没有报错
>>>
5.3 update方法-----增加的是列表
5.3.1 s1={10,20,100}
s1.update([30,40,50,60])
print(s1)
5.3.2 效果
>>> s1={10,20,100}
>>> s1.update([30,40,50,60])
>>> print(s1)
{100, 40, 10, 50, 20, 60, 30}
>>>
5.3.3 s1={10,20,100}
s1.update([10,20,50,60])
print(s1)
5.3.4 效果
>>> s1={10,20,100}
>>> s1.update([10,20,50,60])
>>> print(s1)
{100, 10, 50, 20, 60} #重复的数据并没有增加
>>>
5.3.5 如果用add看看
s1={10,20,100}
s1.add([10,20,50,60])
5.3.6 效果,报错
>>> s1={10,20,100}
>>> s1.add([10,20,50,60]) #add增加的是单一数据,不是列表
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list' #不能是列表
>>>
5.3.7 反之,update追加一个单一数据看看
s1={10,20,100}
s1.update(60)
5.3.8 效果,报错
>>> s1={10,20,100}
>>> s1.update(60) #update增加的不是单一数据,而是一组列表数据
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>
6.集合的常见操作方法:删除数据的方法
6.1 三种方法:remove(),discard()和pop()的方法
remove() #如果元素不存在,则会发生报错。
discard() #如果元素不存在,则不会发生报错。
6.2 remove函数
>>> s1={10,20,100}
>>> s1.remove(10)
>>> print(s1)
{100, 20}
>>> s1.remove(30) #如果元素不存在,则会发生报错。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 30
>>>
6.3 discard函数
>>> s1={10,20,100}
>>> s1.discard(10)
>>> print(s1)
{100, 20}
>>> s1.discard(30) #如果元素不存在,则不会发生报错。
>>> print(s1)
{100, 20}
>>>
6.4 pop函数------随机删除一个数据,并返回这个数据,网上有说是随机,这个是不准确的
s1={10,20,100}
s1.pop()
print(s1)
效果
>>> s1={10,20,100}
>>> s1.pop()
100
>>> print(s1)
{10, 20}
>>>
set 集合的 pop 方法会对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
>>> s1={20,80,30,90,10,100,50}
>>> s1.pop() #将随机排序,可能是由低向高,也可能是由高向低,将左边最大的那个数100,删除,并返回这个数
100
>>> print(s1) #注意原集合并没有还是无序状态
{10, 80, 50, 20, 90, 30}
>>>
如下,要么最大值,要么最小值,随机指的是这个
-------
>>> s1={20,80,30,90,10,100,50}
>>> s1.pop()
100
>>> s1={20,80,30,90,10,50}
>>> s1.pop()
10
>>> s1={20,80,30,90,50}
>>> s1.pop()
80
>>>
------
>>> s1={20,80,30,90,10,100,50}
>>> s1.pop()
100
>>> s1={20,80,30,90,10,100,50}
>>> s1.pop()
100
>>> s1={60,20,80,30,90,10,100,50}
>>> s1.pop()
100
>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
>>> s1.pop()
1
>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
>>> s1.pop()
1
>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
>>> s1.pop()
1
>>>
------
7.集合的常见操作方法:查找数据的方法
7.1 in 和 not in
7.2 比如s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
7.3 判断100是不是在集合中
print(100 in s1) #返回True
7.4 判断500是不是在集合中
print(500 not in s1) #返回True
7.5 效果
>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
>>> print(100 in s1)
True
>>> print(500 not in s1)
True
>>> print(500 in s1)
False
>>>
8.集合的常见操作方法:计算集合元素个数
8.1 语法格式如下:len(s)
8.2 s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
8.3 效果
>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
>>> len(s1)
15
9.集合的常见操作方法:清空集合
9.1语法格式如下:clear()
9.2 s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
9.3 效果
>>> s1={1,8,102,200,9,20,80,30,90,10,99,100,33,50,40}
>>> s1.clear()
>>> print(s1)
set()
>>>
猜你喜欢
- 2024-12-18 接口测试系列文章3——Python接口测试其实只需三步
- 2024-12-18 Python列表详解 python中列表的方法
- 2024-12-18 Python3+pygame实现的90坦克大战代码有演示效果
- 2024-12-18 python并发编程一:多进程 python 多进程原理
- 2024-12-18 小白都看懂了,Python 中的线程和进程精讲,建议收藏
- 2024-12-18 pandas每天一题-题目1、2、3 pandas选择题题库
- 2024-12-18 二分查找法-Python学习 二分查找算法流程图
- 2024-12-18 Python3.8+Django+nginx+uwsgi环境(二)
- 2024-12-18 一篇文章带你使用Python搞定对Excel表的读写和处理
- 2024-12-18 py2exe实现python文件打包为.exe可执行程序(上篇)
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)