反转链表-reverselinkedlist假设存在链表1→2→3→Ø,我们想要把它改成Ø←1←2←3。在遍历列表时,将当前节点的next指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点。不要忘记在最后返回新的头引用!#非递归的形式classSolution:defreverseList(self,head:ListNode)->ListNode:cur,prev=head
系统 2019-09-27 17:56:36 2456
上节我们提到解决赋值中等号两边参数不一致的方法可以通过切片,但在Python3中我们可以利用特定的语法更加方便的处理这种情况,如下示例。当带*出现在结尾间时L=[1,2,3,4,5]a,*b=Lprint(a,b)示例结果:1[2,3,4,5]我们可以看到a匹配了列表中第一个元素值,而b匹配了后面所有的内容,并且为列表。即当我们利用带*符号匹配时,就可以解决赋值时等号两边元素数量不相等的情形,那么这种带*的处理方式都有哪些详细的使用场景和用法呢?当带*出现
系统 2019-09-27 17:56:23 2456
"""问题:当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱的问题"""'''进程同步'''#多进程抢占输出资源importosimporttimeimportrandomfrommultiprocessingimportProcessdefwork(n):print(f'{n}:{os.getpid()}isrunning')#time.sleep(random.random())time.sleep(2)print(f"{n}:{os.g
系统 2019-09-27 17:56:01 2456
学英语广告最近也许是刚开学的原因,不管是公众号,还是刷抖音,导出都能看到关于学英语、背单词的广告。不知道现在学生们背单词买的什么辅导材料。反正我们上学那会,《星火阅读》特别的火。记得当时随书还送一个红色的塑料膜。书中英语单词是红色的其他文字是黑色的。背单词的时候先把塑料膜盖在书上,然后就只能看到翻译和音标,从而起到自测英语的作用。一页看完了取下塑料膜,再核对哪些单词记错了。就这么一个无脑的功能,当时的我们都觉得好犀利,谁一本这样的背单词书,都不好意思出去装
系统 2019-09-27 17:55:27 2456
字典的特点:以键值对的形式存在,无序排序;key必须唯一不重复,且不能使用可变对象声明一个字典d={}print(d)print(type(d))增:d[1]=‘a’d[2]=‘c’d[3]=‘b’print(d)d.update({4:‘z’})print(d)dict.setdefault(key,value),如果该key不存在,则在字典中插入这个键值对,并返回value;如果该key已存在,则返回字典中key对应的value,原字典不做更新d.se
系统 2019-09-27 17:54:56 2456
oop1.py文件代码#user/bin/pythonclassFoo:defbar(self):print('ok')defhello(self,name):print("iam%s"%name)foo=Foo()foo.bar()foo.hello('FredHuang')classFoo:def__init__(self,name,age):'''初始化实例属性'''self._name=name"""该方法不能通过frommoduleimport*
系统 2019-09-27 17:53:01 2456
编写安全的代码很困难,当你学习一门编程语言、一个模块或框架时,你会学习其使用方法。在考虑安全性时,你需要考虑如何避免代码被滥用,Python也不例外,即使在标准库中,也存在着许多糟糕的实例。然而,许多Python开发人员却根本不知道这些。以下为10个Python常见安全漏洞,排名不分先后。1.输入输出注入攻击影响广泛且很常见,注入有很多种类,它们影响所有的语言、框架和环境。SQL注入是直接编写SQL查询(而非使用ORM)时将字符串与变量混合。我读过很多代码
系统 2019-09-27 17:51:52 2456
例如:if__name__=='__main__':main()如果运行的是主函数的话,执行下一句main()如果作为模块被其他文件导入使用的话,我们就不执行后面的main()什么的。看个例子:#test.pydefmain():print('Hello,world!')main()这是一个打印Hello,world!的简单程序我们尝试从其他文件调用它:#test1.pyimporttesttest.main()运行test1.py,出现打印了两个Hell
系统 2019-09-27 17:51:50 2456
importtimedeflog_time(func,*args,**kwargs):definner():t1=time.time()func(*args,**kwargs)t2=time.time()print(f"使用的时间是{t2-t1}s")returninner@log_timedefappend_func():ll=list()foriinrange(10000):ll.append(i)@log_timedefinsert_func():l
系统 2019-09-27 17:49:44 2456
python代码的执行由python虚拟机来控制,虚拟机访问由GIL控制,保证其同一时刻只有一条线程运行。虽然python能运行多线程,但是因为GIL所以同一时刻只有一条线程在python解释器运行。多线程下python虚拟机按以下方式执行:1.设置GIL2.切换到一条线程去运行3.运行:a.执行python2虚拟机运行1000字节指令或者执行python3虚拟机运行时间15ms字节b.线程主动让出控制(遭遇sleep或者IO操作也将触发)4.把线程设置为
系统 2019-09-27 17:57:05 2455
如下所示:两个函数:Basemap.drawparallels##纬度Basemap.drawmeridians##经度frommpl_toolkits.basemapimportBasemapimportmatplotlib.pyplotaspltimportnumpyasnp#setupLambertConformalbasemap.m=Basemap(width=12000000,height=9000000,projection='lcc',res
系统 2019-09-27 17:48:51 2455
这篇文章主要介绍了python文字和unicode/ascll相互转换函数及简单加密解密实现代码,下面我们来了解一下。importreimportrandom#ord()它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值#chr()是见数字变成汉字#函数功能:将输入的字符串加密#加密方式,将字变成Unicode数值,然后加上一个随机数,然后再变成汉字,再在汉字后面加上这个数字,组成加密后的密文#返回值:加密后的密文#
系统 2019-09-27 17:46:13 2455
《Python3爬虫、数据清洗和可视化实战》零一韩要宾黄园园著第11章数据可视化11.1matplotlib调用matplotlib有下面四个步骤:(1)设定画图背景样式mpl.style.use(“ggplot”)(2)设定画布#命名画布为fig,并把fig分为两个小画布(ax1,ax2),设置fig的大小为12*4点fig,(ax1,ax2)=plt.subplots(1,2,figsize=(12,4))(3)画图及设定元素df_mean.价格.pl
系统 2019-09-27 17:54:24 2454
斐波那契数列(Fibonacci)最早由印度数学家Gopala提出,而第一个真正研究斐波那契数列的是意大利数学家LeonardoFibonacci,斐波那契数列的定义很简单,用数学函数可表示为:数列从0和1开始,之后的数由前两个数相加而得出,例如斐波那契数列的前10个数是:0,1,1,2,3,5,8,13,21,34。用Python实现斐波那契数列常见的写法有三种,各算法的执行效率也有很大差别,在面试中也会偶尔会被问到,通常面试的时候不是让你简单的用递归写
系统 2019-09-27 17:50:36 2454
前提1.python环境及tensorflow安装成功2.Anaconda安装好,Anaconda安装步骤安装步骤1.下载facenet,https://github.com/davidsandberg/facenet.git2.下载好后解压安装包。3.在自己电脑对应的Anaconda3\Lib\site-packages目录下,新建facenet文件夹4.将下载的facenet文件夹下的src文件夹下的所有文件拷贝到新建的文件夹中。5.最后,在Anaco
系统 2019-09-27 17:47:34 2454