![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python技巧篇
zg轩
你要知道什么是自己想要的,知道什么是不可逆转的,知道用什么方式实现梦想,知道用什么心情面对苦难,人就在转瞬间感悟,进退得失不离不弃也就有了答案。我不知道命运会把我带到何方,但是我会一直用善良维护其左右
展开
-
python技巧篇之迭代器(generatort)
要想创建一个iterator,必须实现一个有__iter__()和__next__()方法的类,类要能够跟踪内部状态并且在没有元素返回的时候引发StopIteration异常.这个过程很繁琐而且违反直觉.Generator能够解决这个问题.python generator是一个简单的创建iterator的途径.前面讲的那些繁琐的步骤都可以被generator自动完成.简单来说,generat...原创 2019-01-24 08:35:00 · 190 阅读 · 0 评论 -
leetcode 54 旋转矩阵I
题目:Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.Example 1:Input:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]Output: [1,2,3,6,9,8,7,4,5]Exa...原创 2019-01-17 09:08:24 · 121 阅读 · 0 评论 -
python技巧之一行代码转任意进制
def baseN(num,b):return ((num==0) and ‘0’) or (baseN(num/b,b).lstrip(‘0’)+‘0123456789ABCDEF’[num%b])原创 2019-02-06 12:24:17 · 465 阅读 · 0 评论 -
高效生成n个素数的方法
def primes(n):boo=[False]nboo[0],boo[1]=True,Truefor i in range(2,int(n*.5)+1):for j in range(2*i,n,i):boo[j]=Truereturn [p for p,v in enumerate(boo) if not v]原创 2019-02-06 16:18:52 · 433 阅读 · 0 评论 -
python 小数错误处理总结
原代码版本:n1,n2=raw_input().split(’.’),raw_input().split(’.’)res=str(reduce(lambda a,b:10a+b,map(lambda x:ord(x[0])+ord(x[1])-2ord(‘0’),list(z_l(n1[-1][::-1],n2[-1][::-1],fillvalue=‘0’))[::-1])))c=1 if...原创 2019-02-07 09:47:11 · 1352 阅读 · 0 评论 -
python 小数处理decimal模块
Python提供了decimal模块用于十进制数学计算,它具有以下特点:提供十进制数据类型,并且存储为十进制数序列;有界精度:用于存储数字的位数是固定的,可以通过decimal.getcontext().prec=x 来设定,不同的数字可以有不同的精度浮点:十进制小数点的位置不固定(但位数是固定的)decimal的构建:可以通过整数、字符串或者元组构建decimal.Decimal,对于...原创 2019-02-07 09:47:39 · 734 阅读 · 0 评论 -
python3替换python2中cmp的函数介绍
ython3中已经不能使用cmp()函数了,被如下五个函数替代:import operator #首先要导入运算符模块operator.gt(1,2) #意思是greater than(大于)operator.ge(1,2) #意思是greater and equal(大于等于)operator.eq(1,2) #意思是equal(等于)oper...原创 2019-01-24 15:49:07 · 360 阅读 · 0 评论 -
一种列表降维的技巧积累
nums=[[1,2],[3,4]]print sum(nums,[])结果:[1,2,3,4]原创 2019-01-24 19:40:49 · 379 阅读 · 0 评论 -
python技巧之求众数篇
最佳方法: 采用取反的方式来求中位数,排序后结果为l=[1,2,3,4,5,6,7,8,9,10],长度为10,half=10//2=5,x[5]为列表的第六位数,5的取反数为-6,x[-6]实际上是对列表进行反向查找,为列表中的第五位数,长度为偶数10时中值5+6/2=5.5。当结果为l=[1,2,3,4,5,6,7,8,9]时,长度为9,half=9//2=4,x[4]为列表的第五位数,...原创 2019-01-16 13:49:37 · 10705 阅读 · 0 评论 -
python 技巧篇之实现多项排序
l1.sort(key=lambda x:((-x[1]-x[2],-x[1],x[0])))加负号意味着从大到小排,优先排第一项,若第一项相同,则考虑第二项,依此类推原创 2019-01-16 15:24:21 · 151 阅读 · 0 评论 -
求某天是当年的第几天
题目:给出年分m和一年中的第n天,算出第n天是几月几号。题解:import datetimewhile True:try:year, day = map(int, input().split())first_day = datetime.datetime(year, 1, 1)delta = datetime.timedelta(days=day - 1)print(dateti...原创 2019-02-07 18:29:26 · 232 阅读 · 0 评论