随笔分类 - python
摘要:Python str 提供了 3 种可用来进行文本对齐的方法,分别是 ljust()、rjust() 和 center() 方法 ljust()方法 功能: 是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。 ljust() 方法的基本格式如下: S.ljust(width[, fillc
阅读全文
摘要:python heapq模块 引言 堆 堆(heapq): 一类特殊数据结构,通常是一个可以被看做一棵树的数组对象。 堆的性质: 堆中某个节点的值,总是不大于或不小于其父节点的值; 堆总是一颗完全二叉树。 堆分类: 将根节点最大的堆叫做最大堆或大顶堆,根节点最小的堆叫做最小堆或小顶堆。 常见的堆有二
阅读全文
摘要:python functools 模块 常见API cmp_to_key cmp_to_key() 是将比较函数转化为 关键字函数。 与使用接受关键字函数的方法一同使用, 如(sorted(), min(), max()...), 改函数主要将程序转换成python3 格式的,因为python3 中
阅读全文
摘要:Pycharm中设置默认字符编码为utf-8模板 背景知识 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候, 就转换为UTF-8编码。 用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里, 编辑完成后,保存的时候再把Unicode转换为U
阅读全文
摘要:回溯算法 定义:回溯算法,又称“试探法”。解决问题时, 每一步都是尝试态度,如果发现并不是好的, 或者这么走下去很定达不到目标,立刻返回重新操作, 这种走不通就回退的方法为回溯算法。 解题一般步骤: 1、定义一个解空间, 它包含问题的解; 2、利用适合的方法组织空间解; 3、利用深度优先法搜索解空间
阅读全文
摘要:##排序算法 一、 插入排序 (有序区, 无序区) 把无序区的第一个元素插入有序区的适当位置 import random num = list() for i in range(20): num.append(random.randint(0, 100)) sorted_list = [num[0]
阅读全文
摘要:详细解读Python中的__init__()方法 背景 __init__()方法意义: 对象生命周期的初始化: 参数值可以有多种形式。 隐含的超类--object 在接触init()之前, 简单看下Python中隐含的object类的层次结构。 class X: pass >>>X.__class_
阅读全文
摘要:任意多边形内接圆 算法思路: 推荐 在多边形形成的二维平面区域中,高度为H,宽度为WW。将空间进行等分, 高度为n份, 宽度为m份; 在空间形成网格,将多边形区域外的点剔除掉。在剩下的点中对每个点,找到边最近的距离。在这样 很多点中找出最大距离点。以种子点为中心的区域再剖分,循环迭代。 """ #!
阅读全文
摘要:python向es发送日志信息 # pip install elasticsearch # pip install CMRESHandler # pip install requests import logging from cmreslogging.handlers import CMRESHa
阅读全文
摘要:递归和尾递归 递归 1、定义: 子问题必须和原始问题相同,且更为简单; 不能无限制的调用本身,必须有个出口,化简为非递归状况处理。 2、场景: # 递归实现 def fact(n: int): """ 求n! :param n: :return: """ if n < 0: return 0 eli
阅读全文
摘要:栈溢出(stack overflow)问题解决方案 场景: eg: Fatal Python error: Cannot recover from stack overflow 原因: 使用递归函数调用过多导致栈溢出。 在Python中,函数调用,通过栈(stack)实现; 当进入函数调用,相当于一
阅读全文
摘要:源码:https://github.com/weilanhanf/PythonDesignPatterns python - 策略模式 策略: 为了达到某一目的而采取的手段或者方法。
阅读全文
摘要:查找 二分法查找 from time import perf_counter from typing import List def my_min(arr: List[int]): """ 二分查找法 :param arr: 已知有序数组 :return: list数列 """ length = l
阅读全文
摘要:图像的开闭运算 ##实例: python OpenCV使用场景 https://blog.csdn.net/qq_39507748/article/details/104539673 原理: 图像开运算和闭运算与膨胀和腐蚀运算有关, 由膨胀和腐蚀两个运算的复合与集合操作(并、交、补等)组合的运算构成
阅读全文
摘要:前言 with语句的使用给我们带来了,很多的便利,最常用的就是关闭一个文件,释放一把锁。 实现原理 根据with的实现原理“上下文管理器协议” 此协议,提示我们要在类中去实现两个特族方法,enter(self)和exit(self, exc_type, exc_val, exc_tb) 有了这两个方
阅读全文
摘要:最近最少使用算法LRU(Least Recently Used) 原理: 按照使用时间倒排序,然后从尾部删除元素。 场景: 在有限的空间中,存储对象时,当空间满时,会按一定的原则删除原有的对象, 常用的原则(算法)LRU, FIFO, LFU等。 计算机的Cache硬件,以及主存到虚拟内存的页面置换
阅读全文
摘要:递归函数的弊端 递归函数虽然编写时,使用很少的代码完成了庞大的功能,弊端非常明显--时间和空间的消耗。 eg: import time def fibonacci(n): if n < 2: return 1 else: return fibonacci(n - 1) + fibonacci(n -
阅读全文
摘要:对容器list进行分组: 使用场景: 容器list数据较多,导致代码运行时,内存溢出; 需要对数据进行分组; 代码实例: def list_of_groups(list_info, per_len): """ group the list :param list_info: :param per_l
阅读全文
摘要:python 根据需求来进行去重 实例代码: from functools import reduce rule_list = [1,2,3,43,2,1] remove_duplicate_func = lamba x,y : x if y in else x + [y] res = reduce
阅读全文