Python
terrygmx
这个作者很懒,什么都没留下…
展开
-
Jupyter notebook修改默认打开路径
Windows默认路径是C盘用户目录,不少人C盘空间比较紧张,而且相关文件也很多不在C盘,所以相信很多人像我一下想修改一下默认路径。原创 2022-10-09 14:47:43 · 437 阅读 · 1 评论 -
算法 | 找到 K 个最接近的元素
给定一个 排序好 的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。整数 a 比整数 b 更接近 x 需要满足:|a - x| < |b - x| 或者|a - x| == |b - x| 且 a < b。原创 2022-08-25 09:14:51 · 269 阅读 · 0 评论 -
Python 3.7 import kafka 报错问题
python操作kafka报错:return ‘’ % self.async使用的python3.7版本,发现使用kafka的库连接时报错,错误信息如下:…return ‘’ % self.async^SyntaxError: invalid syntax这里的原因是, 在3.7里面async已经变成了关键字。解决办法:使用最新的kafka版本即可. 但是pip install kafka不行,可以使用下面的方法升级:pip install kafka-python...原创 2021-01-13 09:36:59 · 1527 阅读 · 0 评论 -
Python实现接雨水问题
It’s a problem you are likely to be asked when you have interview from ByteDance.描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分...原创 2019-04-28 21:42:42 · 1672 阅读 · 0 评论 -
Python调用REST API接口的几种方式
原文链接相信做过自动化运维的同学都用过REST API接口来完成某些动作。API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课。本文主要介绍python中调用REST API的几种方式,下面是python中会用到的库。urllib2httplib2pycurlrequestsurllib2Sample1import url...转载 2019-04-16 22:56:38 · 2738 阅读 · 1 评论 -
Python3实现删除二叉搜索树中的节点
问题给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:首先找到需要删除的节点;如果找到了,删除它。说明: 要求算法时间复杂度为 O(h),h 为树的高度。示例:root = [5,3,6,2,4,null,7]key = 3 ...原创 2019-04-08 00:04:40 · 1388 阅读 · 1 评论 -
简单说明Python中*args 和 **kwargs的区别
*args,**kwargs是什么?其实就是函数的不定参数。定义了这两种参数的函数,可以给它传0到多个参数。1. *args例子In [19]: def fun1(*args): ...: print(args) ...:In [20]: fun1()In [21]: fun1(1,2,"abc")1 2 abc可以看到,*args会取得所有入参。2...原创 2019-04-11 12:18:39 · 961 阅读 · 0 评论 -
Python实现线性搜索
例子很简单,但是关键是练习如何有效的用assert发现问题并提供有效反馈。import sysimport tracebackdef linearSearch(iter, s): try: #iter should be iterable assert type(iter) == list or type(iter) == tuple #iter should not be emp...原创 2018-11-01 15:44:14 · 1483 阅读 · 0 评论 -
返回详细assert失败信息
原代码摘自StackOverflow如果有多条assert信息,发生错误如何定位? 例如:try: assert True assert 7 == 7 assert 1 == 2 # many more statements like thisexcept AssertionError: print 'Houston, we have a probl...翻译 2018-11-01 15:33:37 · 1673 阅读 · 0 评论 -
Python实现快速排序
定义快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序 n个项目要 O(n\log n)(大O符号)次比较。在最坏状况下则需要 O(n^{2})} {O(n^{2})次比较,但这种状况并不常见。事实上,快速排序 Theta (n\log n)通常明显比其他算法更快,因为它的内...原创 2018-10-30 09:43:09 · 208 阅读 · 0 评论 -
Python实现堆排序
定义堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆节点的访问通常堆是通过一维数组来实现的。在数组起始位置为0的情形中:父节点i的左子节点在位置 (2i+1);父节点i的右子节点在位置 (2i+2);子节点i的父节点在位置 floor((i-1)/2...原创 2018-10-18 11:41:50 · 142 阅读 · 0 评论 -
Python实现插入排序
插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。**算法描述**一般来说,插入排序都采用in-pla...原创 2018-10-14 00:29:41 · 89 阅读 · 0 评论 -
python实现选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最...原创 2018-10-12 11:21:21 · 134 阅读 · 0 评论 -
python实现冒泡排序
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序对{\displaystyle n}n个项目需要O({\displaystyle n{2}}n{2})的...原创 2018-10-12 11:19:03 · 299 阅读 · 0 评论