自学Python小杂肿
自学Python小杂肿
Shashank497
我要找到你,不管南北东西
展开
-
python中列表和字典前加星号*的作用
def add(a, b): return a + bdata = [4, 3]print(*data)data = {'a': 4, 'b': 3}print(*data)print(add(**data))原创 2022-02-10 15:05:58 · 655 阅读 · 0 评论 -
python实现二叉树层次遍历(BFS)
# 求二叉树路径DFSclass TreeNode: def __init__(self, val = None): self.left = None self.right = None self.val = valclass BTree: def insert(self,root,node): #构建二叉排序树 if root is None: return node if roo.原创 2022-01-23 22:28:02 · 1533 阅读 · 0 评论 -
python求二叉树所有路径(DFS)
# 求二叉树路径DFSclass TreeNode: def __init__(self, val = None): self.left = None self.right = None self.val = valclass BTree: def insert(self,root,node): #构建二叉排序树 if root is None: return node if root原创 2022-01-23 21:29:55 · 1411 阅读 · 0 评论 -
python合并有序链表(递归)
# 合并有序链表class ListNode: def __init__(self, value=None): self.value = value self.next = Nonedef Creat_Link_Tail(lst): head = ListNode(lst[0]) L = head for i in range(1, len(lst)): p = ListNode(lst[i]) L.nex.原创 2022-01-23 16:10:01 · 643 阅读 · 0 评论 -
python求最长回文子串
原理可参考链接:https://blog.csdn.net/sinat_35261315/article/details/78267046?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-原创 2022-01-23 11:43:16 · 1046 阅读 · 0 评论 -
python求链表中的循环头节点(快慢指针方法)
class LinkNode(): def __init__(self,value = None): self.value = value self.next = Nonedef Creat_Link_Tail(lst): L = LinkNode(lst[0]) first_node = L for i in range(1, len(lst)): if type(lst[i]) == int: p原创 2022-01-22 23:46:03 · 471 阅读 · 0 评论 -
python求二叉树深度(递归)
def tree_deep(root): if not root: return 0 #说明上一个节点是叶子节点,开始逐步返回 left, right = 0, 0 if root.left: left = tree_deep(root.left) #左子树递归 if root.right: right = tree_deep(root.right) #右子树递归 return max(left, right) + 1原创 2022-01-22 23:18:33 · 1488 阅读 · 0 评论 -
python中@property和property()函数
前言@property是property()函数的语法糖(简便形式)在获取、设置和删除对象属性的时候,需要额外做一些工作。比如在游戏编程中,设置敌人死亡之后需要播放死亡动画。需要限制对象属性的设置和获取。比如用户年龄为只读,或者在设置用户年龄的时候有范围限制。这时就可以使用 property 工具,它把方法包装成属性,让方法可以以属性的形式被访问和调用。property()函数语法:property(fget=None, fset=None, fdel=None, doc=None) -&转载 2022-01-14 22:20:58 · 267 阅读 · 0 评论 -
python装饰器
函数装饰器import timedef decorator(func): def wrapper(*args, **kwargs): start_time = time.time() func() end_time = time.time() print(end_time - start_time) return wrapper@decoratordef fun(): time.sleep(0.8)fu原创 2022-01-14 21:44:17 · 328 阅读 · 1 评论 -
python的classmethod和staticmethod
静态方法(staticmethod)静态方法@staticmethod也是一个类方法,是可以直接类调用的。个人认为的使用场景是:只要要定义的方法里不涉及到self参数,就用静态方法承担。因为这样就表明这个方法和本身的类没有关系,明确的区别出类相关和不相关。class A: def __init__(self, a, b): self.a = a self.b = b def do_normal_something(self, a, b):原创 2022-01-13 21:33:37 · 546 阅读 · 0 评论 -
python中的__call__方法和其他类方法比较
call方法class A: def __init__(self, a, b): self.a = a self.b = b def __call__(self,a,b): print("123call",a,b)a = A(1,2)a(3,4) #相当于把实例变一个函数print(a.a,a.b)不得不引发出call和其他类方法的区别:实例化方法实例化的方法就是普通的类方法,它表达了类功能的多样性和抽象性,传入参数是se原创 2022-01-13 21:06:32 · 252 阅读 · 0 评论 -
python实现哈希表
# 实现hashtable,指定在key位置存入dataclass HashTable: def __init__(self): self.size = 11 self.slots = [None] * self.size # hold the key items self.data = [None] * self.size # hold the data values def hashfunction(self, key, size)原创 2022-01-13 20:43:16 · 1883 阅读 · 2 评论 -
python实现堆和堆排序
#堆heapclass heap(object): def __init__(self): self.data_list = [] def get_parent_index(self,index): if index==0 or index>len(self.data_list)-1: return None else: return (index-1)//2 def swap(.原创 2022-01-13 17:42:09 · 171 阅读 · 0 评论 -
二分查找 python
python# binary searchdef binary_search(lst, x): lst.sort() if len(lst) > 0: pivot = len(lst) // 2 if lst[pivot] == x: return True elif lst[pivot] > x: return binary_search(lst[:pivot], x)原创 2021-12-25 18:21:15 · 522 阅读 · 0 评论 -
python实现快速排序(QuickSort)
def Partition(lst,low,high): pivot = lst[low] while low<high: while low<high and lst[high]>=pivot: high -= 1 lst[low] = lst[high] while low<high and lst[low]<=pivot: low += 1 ls原创 2022-01-12 21:16:33 · 346 阅读 · 0 评论 -
python实现二叉排序树
#二叉排序树class BTree(): def __init__(self,data): self.left = None self.right = None if type(data) == list: self.data = data[0] for d in data[1:]: self.insert(d) else: sel原创 2022-01-12 17:29:01 · 1077 阅读 · 0 评论 -
python生成器和yield关键字
体验下列代码用于先体验普通列表推导式和生成器的差别:# def add():# temp = ["姓名", "学号", "班级", "电话"]# dic = {}# lst = []# for item in temp:# inp = input("请输入{}:".format(item))# if inp == "exit":# print("成功退出输入")# return原创 2022-01-12 14:59:07 · 245 阅读 · 0 评论 -
python迭代器
什么是迭代器迭代是python中访问集合元素的一种非常强大的一种方式。迭代器是一个可以记住遍历位置的对象,因此不会像列表那样一次性全部生成,而是可以等到用的时候才生成,因此节省了大量的内存资源。迭代器对象从集合中的第一个元素开始访问,直到所有的元素被访问完。迭代器有两个方法:iter()和next()方法。可迭代的对象类似于list、tuple、str 等类型的数据可以使用for …… in…… 的循环遍历语法从其中依次拿到数据并进行使用,我们把这个过程称为遍历,也称迭代。python中可迭代的对象有原创 2022-01-12 14:15:57 · 210 阅读 · 0 评论 -
python numpy (下)
自学python之路大数据实验室第 7 次打卡python numpy (下)十一、 数组连接连接numpy数组连接意味着将两个或多个数组的内容放在单个数组中。在SQL中,我们基于键来连接表,而在numpy中,我们按轴链接数组。传递了一系列要与轴一起连接到 concatenate()函数的数组。如果为显示传递轴。则将其视为零。实例:实例2(沿着行axis=1连接两个2-D数组):使用堆栈函数连接数组堆栈与级联相同,唯一的不同是堆栈是沿着新轴完成的。我们可以沿着第二个轴连接两个一维数组原创 2020-06-06 16:56:03 · 408 阅读 · 0 评论 -
Python NumPy (上)
自学python之路大数据实验室第6次学习打卡一、numpy简介1.什么是numpyNumPy 是用于处理数组的 python 库。它还拥有在线性代数、傅立叶变换和矩阵领域中工作的函数。NumPy 由 Travis Oliphant 于 2005 年创建。它是一个开源项目,您可以自由使用它。NumPy 指的是数值 Python(Numerical Python)。2.为何使用numpy在python中,有满足数组功能的列表,但是处理起来很慢。numpy旨在提供一个比传统python列表快原创 2020-05-31 18:30:24 · 469 阅读 · 0 评论 -
自学python之路 第十章 进程和线程
自学Python之路大数据实验室第五次学习记录打卡第十章 进程和线程10.1 简介·无论是多核还是单核cpu,都可以执行多任务,而cpu执行代码都是按顺序执行的,那么单核cpu是如何执行多任务的呢?答案就是操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换到任务2,任务2执行0.01秒,切换到任务3…这样反复执行下去。表面上看,每个任务都是交替执行的,但是由于cpu的执行速度实在太快了,我们感觉就像所有任务都在同时执行一样。真正的并行执行多任务只能在多核cpu上实现,但是,由于多任务数量原创 2020-05-24 22:06:11 · 370 阅读 · 0 评论 -
自学Python之路 第九章 文件读写相关
自学Python之路四川农业大学——大数据实验室第四次打卡第九章9.1 IO编程·IO在计算机中指Input/Output,也就是输入输出。由于程序和运行时数据是在内存中驻留,由cpu这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。·由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中就存在速度严重不匹配的问题,解决此办法有两种方法:1、同步IO:指CPU等着,等数据写入磁盘完成时,再接着往下执行。好比你去麦当劳点个汉堡,服务员告诉你需要等10分钟原创 2020-05-17 23:30:23 · 332 阅读 · 0 评论 -
自学Python之路 第八章 错误、调试和测试
自学Python之路四川农业大学——大数据实验室第二次打卡第八章8.1 错误·在程序运行过程中,总会遇到各种各样的错误,如下:1.程序编写有问题:比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。2.用户输入错误:比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。3.无法预测的错误(异常):比如在写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。这类错误也常称之为异常,在程序中通常是必须原创 2020-05-10 20:09:48 · 326 阅读 · 0 评论 -
自学python之路 第七章
自学python之路四川农业大学——大数据实验室第二次打卡第七章7.1 使用 slots·python作为动态语言的灵活性表现之一为:定义了一个class,创建了一个class实例之后,我们可以给实例绑定任何属性和方法,如下:·但是给一个实例绑定的方法,对另一个实例是不起作用的:·那么如何达到给类的所有实例都绑定同一个方法呢?可以给class绑定方法:·但是如果我们想要限制实例的...原创 2020-05-03 22:24:13 · 396 阅读 · 0 评论 -
自学python之路 第六章
学习python之路第六章6.1 类和实例·类的特点:第一个参数永远是实例变量self,并且,调用时不用传递该参数,其他参数正常传入。·类的方法:在【Student】类的内部定义访问数据的函数,这样,就把“数据”给封装起来了,这些封装数据的函数是和【Student】类本身关联起来的,即为类的方法。...原创 2020-04-26 21:56:24 · 449 阅读 · 0 评论