懂了这13个Python使用技巧,不怕开发效率低

不废话啦~直接进入主题
懂了这13个Python使用技巧,不怕开发效率低_第1张图片

1.函数unpack


```go
def foo(x, y):
 
 print x, y
 
alist = [1, 2]
 
adict = {
     'x': 1, 'y': 2}
 
foo(*alist) # 1, 2foo(**adict) # 1, 2

2. 链式比较操作符

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

3.函数的默认参数

>>> def foo(x=[]):
 
... x.append(1)
 
... print x
 
...>>> foo()
 
[1]>>> foo()
 
[1, 1]

更安全的做法是:

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

4. 带关键字的格式化

>>> 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 !

5. 切片操作的步长参数

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

6.嵌套列表推导式

[(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’]

7.print 重定向输出到文件

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

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

8. Python3中的元组unpack

>>> a, b, *rest = range(10)
 
>>> a0>>> b1>>> rest
 
[2, 3, 4, 5, 6, 7, 8, 9]
 
>>>
 
>>> first, second, *rest, last = range(10)
 
>>> first0>>> second1>>> last9>>> rest
 
[2, 3, 4, 5, 6, 7, 8]

9.pow的第三个参数

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

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

10.enumerate还有第二个参数

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

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

11.显式的声明一个集合

在Python 2.7 之后可以这么声明一个集合。

>>> {
     1,2,3}
set([1, 2, 3])

12.用切片来删除序列的某一段

>>> a = [1, 2, 3, 4, 5, 6, 7]>>> a[1:4] = []>>> a
 
[1, 5, 6, 7]

当然用 del a[1:4] 也是可以的,去除偶数项(偶数索引的):

>>> a = [0, 1, 2, 3, 4, 5, 6, 7]
 
>>> del a[::2]
 
>>> a[1, 3, 5, 7]

13.isinstance可以接收一个元组

这个真的鲜为人知, 我们可以用 isinstance(x, (float, int)) 来判断 x 是不是数,也就是那个元组里面是 或 的关系,只要是其中一个的实例就返回 True。

isinstance(1, (float, int))True isinstance(1.3, (float, int))True isinstance(“1.3”, (float, int))False

还有很多使用技巧,想获得更多基础学习资源,可以看小编主页吖

更多Python资源共享+视频课堂+电子书籍,请关注下面公众号,关注云芸学派让你不后悔
懂了这13个Python使用技巧,不怕开发效率低_第2张图片

你可能感兴趣的:(python,人工智能,编程语言,大数据,程序员)