-
拓扑排序用于有向无环图,通过Kahn算法实现:先统计入度,将入度为0的节点入队,依次处理节点并更新邻居入度,最终得到线性序列;若结果包含所有节点则排序成功,否则存在环。329 收藏 -
正则表达式中的|符号表示“或”,用于匹配左右任意一个表达式;1.基本用法是匹配多个字符串,如apple|orange可匹配“apple”或“orange”;2.配合括号分组可限制“或”的范围,如(cat|dog)food表示匹配“catfood”或“dogfood”;3.实际应用中需避免歧义、注意性能问题,并根据平台决定是否转义。329 收藏 -
<ol><li>一元二次方程$ax^2+bx+c=0$($a\neq0$)的根由判别式$D=b^2-4ac$决定:当$D>0$时有两个不等实根,$D=0$时有重根,$D<0$时无实根。</li></ol>329 收藏 -
strptime将字符串解析为datetime对象,strftime则将其格式化为字符串,二者互为逆操作,需保持格式代码一致。329 收藏 -
多线程适用于I/O密集型NLP任务,如批量文件读取清洗、并发调用外部API、并行特征提取及请求预处理;需满足无强依赖和存在等待两个条件,推荐用concurrent.futures管理线程池。329 收藏 -
graphlib模块提供TopologicalSorter类用于DAG拓扑排序,支持添加依赖、处理多前置节点及独立任务,通过static_order获取顺序,prepare与done实现增量调度,遇环抛CycleError。329 收藏 -
RotatingFileHandler不支持按天轮转,因其仅依据文件大小(maxBytes)触发;需改用TimedRotatingFileHandler并正确配置when='midnight'与atTime=time(0,0,0)才能实现每日00:00准确切分。329 收藏 -
使用readlines()读取的每一行末尾默认包含换行符\n,导致拼接字符串时内容被强制换行;只需调用.strip()去除首尾空白(含换行符),即可实现预期的单行输出。329 收藏 -
掌握glob找文件、pandas.concat合数据、pathlib理路径、tqdm+try控节奏四招,即可高效完成90%批量文件处理任务。329 收藏 -
调试Python网络程序的核心是看清实际请求与响应,需用requests-toolbelt打印原始报文、mitmproxy抓包验证、先检查status_code和encoding、并用curl-v对照请求细节。329 收藏 -
本文详解装饰器中inner函数为何能正确接收并使用num参数——关键在于装饰器返回的是一个新函数(inner),而实际调用时传入的参数直接抵达该函数,其本质是闭包作用域与函数调用链的自然结合。329 收藏 -
Python的set是无序、不重复、可变的哈希表实现数据类型,支持O(1)查找/插入/删除;适用于去重(如set([1,2,2,3])→{1,2,3})和集合运算(|、&、-、^),元素须可哈希。329 收藏 -
Python日志系统需兼顾可读性、可维护性、可追溯性和运行时可控性,核心是分离关注点;应使用logging.getLogger(__name__)获取命名记录器,避免污染rootlogger,并通过dictConfig()声明式配置,在启动早期统一管理handlers、formatters、filters及结构化日志。329 收藏 -
Kivy中ScrollView子组件(如Label、GridLayout)不显示,通常是因为误创建了新App实例而非调用当前运行实例的方法,导致UI更新作用于无效对象。本文详解该典型错误及正确实践。329 收藏 -
Python迭代器的核心是迭代协议,即实现__iter__()和__next__()方法;可迭代对象仅需__iter__()返回迭代器,而迭代器必须同时实现二者并维护状态、抛出StopIteration。329 收藏