欢迎大家收看分享12个python使用技巧,助你轻松掌握Python高效开发!部分代码用图片的方式呈现出来,方便各位观看与收藏,要是喜欢的话,记得一定不要忘记点赞关注嗷!

内容如下:

  1. 隐藏特性 1,函数unpack

def foo(x, y):

print x, y

alist = [1, 2]

adict = {'x': 1, 'y': 2}

foo(*alist) # 1, 2foo(**adict) # 1, 2

  1. 隐藏特性 2, 链式比较操作符

x = 3>>> 1 < x < 5True>>> 4 > x >=3True

  1. 隐藏特性 3,函数的默认参数 分享12个python使用技巧,助你轻松掌握Python高效开发

更安全的做法是:

def foo(x=None):... if x is None:... x = []... x.append(1)... print x

...>>> foo()

[1]>>> foo()

[1]

  1. 隐藏特性 5,带关键字的格式化

print "Hello %(name)s !" % {'name': 'James'}

Hello James !>>> print "I am years %(age)i years old" % {'age': 18}

I am years 18 years old

更新些的格式化:

print "Hello {name} !".format(name="James")

Hello James !

  1. 隐藏特性 6,切片操作的步长参数

可以用步长 -1 来反转链表:>>> a = [1, 2, 3, 4, 5]>>> a[::2]

[1, 3, 5]>>> a[::-1]

[5, 4, 3, 2, 1]>>>

  1. 隐藏特性 7,嵌套列表推导式

[(i, j) for i in range(3) for j in range(i)]

[(1, 0), (2, 0), (2, 1)]

列表推导构造permutation:可以用 itertools.permutations 来实现。

In[47]: a = 'abcd'In[48]: [i+j+k for i in a for j in a.replace(i,'') for k in a.replace(i,'').replace(j,'')]Out[48]:

['abc', 'abd', 'acb', 'acd', 'adb', 'adc', 'bac', 'bad', 'bca', 'bcd', 'bda', 'bdc', 'cab', 'cad', 'cba', 'cbd', 'cda', 'cdb', 'dab', 'dac', 'dba', 'dbc', 'dca', 'dcb']

  1. 隐藏特性 8,print 重定向输出到文件

注意打开的模式: “w+” 而不能 “w” , 当然 “a” 是可以的

print >> open("somefile", "w+"), "Hello World"

  1. 隐藏特性 9, Python3中的元组unpack 分享12个python使用技巧,助你轻松掌握Python高效开发

  2. 隐藏特性 10,pow的第三个参数

其实第三个参数是来求模的: pow(x, y, z) == (x ** y) % z,注意,内置的 pow 和 math.pow 并不是一个函数,后者只接受2个参数。

pow(4, 2, 2)0>>> pow(4, 2, 3)1

  1. 隐藏特性 11,enumerate还有第二个参数

enumerate 很赞,可以给我们索引和序列值的对, 但是它还有第二个参数,这个参数用来: 指明索引的起始值。

lst = ["a", "b", "c"]>>> list(enumerate(lst, 1))

[(1, 'a'), (2, 'b'), (3, 'c')]

  1. 优化循环

每种编程语言都会强调需要优化循环。当使用Python的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环中使用点操作。

例如,考虑下面的代码: 分享12个python使用技巧,助你轻松掌握Python高效开发

  1. Zipping and unzipping lists and iterables

a = [1, 2, 3]>>> b = ['a', 'b', 'c']>>> z = zip(a, b)>>> z

[(1, 'a'), (2, 'b'), (3, 'c')]>>> zip(*z)

[(1, 2, 3), ('a', 'b', 'c')]