随笔分类 -  python

python设计模式
摘要:在 Python 中,设计模式是一种解决软件设计中常见问题的通用方法。设计模式并不是代码的具体实现,而是给出了一种结构或方法,帮助开发人员以最佳的方式解决问题。Python 中的设计模式与其他编程语言中的设计模式基本相同,但由于 Python 本身的特性(如动态类型、简洁的语法和强大的标准库),许多
3
0
0
python中的GIL
摘要:Python 中的全局解释器锁(Global Interpreter Lock,简称 GIL)是一种存在于 CPython 实现中的机制,它确保在任一时刻只有一个线程能够执行 Python 字节码,从而保证了解释器内部(尤其是内存管理和引用计数)的线程安全。下面将从多个角度详细解释 GIL 的机制、
20
0
0
python中的内存管理
摘要:Python 中的内存管理是 Python 解释器高效运行的重要基础,涉及对象的分配、释放以及内存碎片的控制。总体来说,Python 内存管理主要包括以下几个方面: 1. 私有堆与内存管理器 Python 所有对象和数据结构都存储在一个由解释器管理的私有堆中。内存的分配与释放都由 Python 内部
13
0
0
python中的多线程和协程
摘要:在 Python 中,多线程与协程都是实现并发编程的常用手段,但它们的实现机制、资源消耗和适用场景各不相同。下面将详细说明二者的原理、区别及各自的优缺点。 1. 多线程 原理与实现 多线程模型 多线程是在一个进程内部创建多个线程,每个线程拥有自己的调用栈和执行上下文。Python 提供了标准库 th
26
0
0
python中的生成器
摘要:Python 中的生成器是一种特殊的迭代器,它通过“惰性求值”(Lazy Evaluation)机制按需生成数据,而不是一次性计算或加载所有数据。这不仅让代码更加简洁,而且在处理大数据、流式数据、无限序列以及需要节省内存的场景下具有显著优势【citeturn0search0】。 1. 生成器的
9
0
0
python中的装饰器
摘要:Python中的装饰器(Decorator) 1. 什么是装饰器? 装饰器(Decorator)是 Python 中的一种高级函数功能,它允许在不修改原函数代码的情况下,动态地增强或修改函数的功能。常用于日志记录、权限验证、函数执行时间计算、缓存等场景。 装饰器本质上是一个高阶函数: 接受一个函数作
5
0
0
python中的format
摘要:Python 中的 format() 方法用于格式化字符串,功能非常强大、灵活,适合生成带变量的动态字符串。下面是 format() 的详细用法和实例讲解。 1. 基本语法 "模板字符串 {位置/名称}".format(参数) 花括号 {} 是占位符,format() 方法会将参数填入对应的占位符中
11
0
0
python中针对实例对象的方法
摘要:以下是包含 hasattr 的 Python 内置函数列表,类似于之前提到的各种方法: 1. getattr() 功能:获取对象的属性值。如果属性不存在,可以返回默认值。 语法:getattr(object, name, default) object: 对象 name: 属性名称(字符串) def
3
0
0
python中针对类本身的方法
摘要:当你提到 __getattribute__ 时,它是 Python 中一个特殊的方法,用于访问对象的属性。重载该方法可以控制访问实例属性的行为。在 Python 中,__getattribute__ 是所有属性访问的基础方法,每次你访问对象的属性时,都会调用它。除了 __class__、__mro_
3
0
0
Flask中的jinji2---过滤器
摘要:在 Jinja2 中,过滤器是用于对模板变量进行操作的工具,类似于管道。以下是 Jinja2 中常用的过滤器及其功能: 1. 字符串处理 capitalize 将字符串的首字母大写,其余部分小写。 {{ "hello world" | capitalize }} <!-- 输出: Hello wor
10
0
0
python中的堆
摘要:在Python中,堆(Heap)是一种特殊的完全二叉树结构,满足以下特性: 最大堆(Max Heap):父节点的值大于或等于子节点的值。 最小堆(Min Heap):父节点的值小于或等于子节点的值。 Python标准库 heapq 提供了一个 最小堆 的实现,虽然没有直接提供最大堆的实现,但是可以通
9
0
0
python中的列表
摘要:在刷算法题时,Python 的列表(list)是非常常用的数据结构。列表的操作灵活且功能丰富,非常适合用来处理数组、队列、堆栈等问题。以下总结了常用的列表语法和在算法题中会用到的场景: 1. 列表的创建 直接创建 lst = [1, 2, 3, 4] 列表推导式 squares = [x ** 2
9
0
0
python中的队列
摘要:在 Python 中,队列(Queue)通常使用 collections.deque 来实现,因其提供了高效的从两端添加和删除元素的操作。队列通常遵循 先进先出(FIFO) 的原则,也就是最先插入的元素最先被移除。 队列的基本操作: append(x): 将元素 x 加入队列的尾部。 popleft
11
0
0
排序算法模板--python版
摘要:在刷算法题时,排序是一个非常常见的操作。Python 提供了多种排序算法的实现方式,而在一些经典的算法题中,我们需要手动实现不同的排序算法以符合题目要求。以下是一些常见的排序算法模板,包含了 冒泡排序、选择排序、插入排序、快速排序、归并排序 和 堆排序,这些算法的模板通常会在刷题中频繁用到。 1.
11
0
0
python中的图
摘要:在 Python 中,图(Graph)是一个非常重要的数据结构,特别是在刷算法题时。图有许多类型(如有向图、无向图、有权图、无权图等),并且涉及的算法(如深度优先搜索、广度优先搜索、最短路径等)都非常常见。以下是 Python 中常见的图的语法,尤其是刷算法题时用到的技巧。 1. 图的基本定义 图通
12
0
0
python中的二叉树
摘要:在刷算法题中,二叉树是常见的题型,掌握二叉树的基本语法和常见操作是非常重要的。以下是一些在Python中常用的二叉树语法及操作,特别是刷算法题时用到的。 1. 二叉树的定义: 首先定义二叉树的节点结构。每个节点通常有三个属性:val(节点的值),left(左子节点),right(右子节点)。 # D
14
0
0
python中的序列结构《增删改查》的复杂度
摘要:在 Python 中,不同的序列数据结构(如 list、tuple、set、dict 等)对增、删、改、查操作的时间复杂度不同。下面是对常见数据结构的总结,按操作类型(增、删、改、查)分析它们的时间复杂度: 1. list(列表) 查找操作(如 in 或 index()): 时间复杂度:O(n) 原
28
0
0
python中的dict()
摘要:在 Python 中,dict() 是创建字典的内置函数,字典是一种键值对(key-value pair)的数据结构。由于字典具有高效的键值查找、插入和删除操作,在 LeetCode 刷题中非常常用,尤其是处理映射关系、快速查找、计数、前缀匹配等问题时。 基本特性 键值对存储:字典中的每个元素是一个
28
0
0
python中的set()
摘要:在 Python 中,set() 是用来创建集合的内置函数。集合是一个无序且不重复的元素集合,在 LeetCode 刷题中经常用来处理去重、集合操作(如交集、并集、差集)、快速查找等问题。 基本特性 无序性:集合中的元素没有顺序。 不重复性:集合会自动去除重复元素。 可变性:集合本身可以修改,但其中
9
0
0
python的collections包
摘要:collections 模块是 Python 标准库的一部分,提供了多种用于处理集合数据结构的工具,其中 defaultdict 是一个非常常用的容器类。它是 字典 的一个子类,可以在访问不存在的键时返回一个默认值,而不是抛出 KeyError 异常。除此之外,collections 模块还提供了许
32
0
0
深色
回顶
收起
点击右上角即可分享
微信分享提示