让你相见恨晚的十个Python骚操作
前言
众所周知,Python以语法简洁著称,同样实现一个功能,Java可能要十来行,Python一行就可以搞定。
Python的代码之所以这么优雅,完全归功于其独有的特性,只要你掌握了这些特性,同样可以写出像诗一样的代码。
下面我们就一起看看Python中的骚操作。
0x00HelloWorld
对于大部分程序员来说,第一个程序应该都是"HelloWorld!"了,Python直接将该入门程序做成了一个包。
In[1]:import__hello__ Helloworld!
0x01交换变量
一行代码搞定变量交换,无需临时变量,也无需异或操作。
In[1]:x,y=y,x
0x02变量比较
对于变量的连续比较,Python是支持的比较好的。
In[24]:x=10 In[25]:50x03列表推导式
In[2]:list=list(range(10)) #取偶数 In[3]:even=[xforxinlistifx%2==0] In[4]:even Out[4]:[0,2,4,6,8]0x04合并字符串
很多语言合并字符串大都是通过+号来实现的,但由于字符串的不可变性,不断合并后的字符串会不断的申请新的内存。
In[5]:x=['a','b','c','d','e','f','g'] In[6]:''.join(x) Out[6]:'abcdefg'0x05列表切片
In[2]:x Out[2]:[0,1,2,3,4,5,6,7,8,9] #取索引为2到8的值,步长为2 In[4]:x[2:8:2] Out[4]:[2,4,6] #步长为负值,表示从后面取值 In[6]:x[::-2] Out[6]:[9,7,5,3,1]0x06反转字符串
In[7]:x='HelloPython!' In[8]:x[::-1] Out[8]:'!nohtyPolleH'0x07同时获取下标和值
x=list(range(10)) forindex,valueinenumerate(x): print(index,value)0x08zip()函数
In[7]:a=[1,2,3] In[8]:b=[4,5,6] In[9]:c=[7,8,9] In[16]:list(zip(a,b,c)) Out[16]:[(1,4,7),(2,5,8),(3,6,9)] #逆操作 In[18]:zz=(zip(a,b,c)) In[19]:x,y,z=zip(*zz) In[20]:x,y,z Out[20]:((1,2,3),(4,5,6),(7,8,9)) #合并列表相邻项 In[22]:a=[1,2,3,4,5,6] In[23]:list(zip(a[::2],a[1::2])) Out[23]:[(1,2),(3,4),(5,6)]0x09闭包
defouter(x): definner(y): #在内函数中用到了外函数的变量 nonlocalx x+=y returnx+y #外函数的返回值是内函数的引用 returninner fun=outer(10) print(fun(10))#30 print(fun(10))#40 print(fun(10))#50总结
今天我们学习了一些Python的技巧,都是大家平时工作必须掌握的技能。大家学会了么。
到此这篇关于让你相见恨晚的十个Python骚操作的文章就介绍到这了,更多相关十个Python骚操作内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!