从我开始学习python的时候,我就开始自己总结一个python小技巧的集合。后来当我什么时候在Stack Overflow 或者在某个开源软件里看到一段很酷代码的时候,我就很惊讶:原来还能这么做!,当时我会努力的自己尝试一下这段代码,直到我懂了它的整体思路以后,我就把这段代码加到我的集合里。这篇博客其实就是这个集合整理后一部分的公开亮相。如果你已经是个python大牛,那么基本上你应该知道这里面的大多数用法了,但我想你应该也能发现一些你不知道的新技巧。而如果你之前是一个c,c++,java的程序员,同时在学习python,或者干脆就是一个刚刚学习编程的新手,那么你应该会看到很多特别有用能让你感到惊奇的实用技巧,就像我当初一样。 每一个技巧和语言用法都会在一个个实例中展示给大家,也不需要有其他的说明。我已经尽力把每个例子弄的通俗易懂,但是因为读者对python的熟悉程度不同,仍然可能难免有一些晦涩的地方。所以如果这些例子本身无法让你读懂,至少这个例子的标题在你后面去google搜索的时候会帮到你。 整个集合大概是按照难易程度排序,简单常见的在前面,比较少见的在最后。 1.1 拆箱 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | >>> a, b, c = 1 , 2 , 3
>>> a, b, c
( 1 , 2 , 3 )
>>> a, b, c = [ 1 , 2 , 3 ]
>>> a, b, c
( 1 , 2 , 3 )
>>> a, b, c = ( 2 * i + 1 for i in range ( 3 ))
>>> a, b, c
( 1 , 3 , 5 )
>>> a, (b, c), d = [ 1 , ( 2 , 3 ), 4 ]
>>> a
1
>>> b
2
>>> c
3
>>> d
4
|
1.2 拆箱变量交换 1 2 3 4 | >>> a, b = 1 , 2
>>> a, b = b, a
>>> a, b
( 2 , 1 )
|
1.3 扩展拆箱(只兼容python3) 1 2 3 4 5 6 7 | >>> a, * b, c = [ 1 , 2 , 3 , 4 , 5 ]
>>> a
1
>>> b
[ 2 , 3 , 4 ]
>>> c
5
|
1.4 负数索引 1 2 3 4 5 | >>> a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
>>> a[ - 1 ]
10
>>> a[ - 3 ]
8
|
1.5 切割列表 1 2 3 | >>> a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
>>> a[ 2 : 8 ]
[ 2 , 3 , 4 , 5 , 6 , 7 ]
|
1.6 负数索引切割列表 1 2 3 | >>> a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
>>> a[ - 4 : - 2 ]
[ 7 , 8 ]
|
1.7指定步长切割列表 1 2 3 4 5 6 7 | >>> a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
>>> a[:: 2 ]
[ 0 , 2 , 4 , 6 , 8 , 10 ]
>>> a[:: 3 ]
[ 0 , 3 , 6 , 9 ]
>>> a[ 2 : 8 : 2 ]
[ 2 , 4 , 6 ]
|
1.8 负数步长切割列表 1 2 3 4 5 | >>> a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ]
>>> a[:: - 1 ]
[ 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 ]
>>> a[:: - 2 ]
[ 10 , 8 , 6 , 4 , 2 , 0 ]
|
1.9 列表切割赋值 1 2 3 4 5 6 7 8 9 10 | >>> a = [ 1 , 2 , 3 , 4 , 5 ]
>>> a[ 2 : 3 ] = [ 0 , 0 ]
>>> a
[ 1 , 2 , 0 , 0 , 4 , 5 ]
>>> a[ 1 : 1 ] = [ 8 , 9 ]
>>> a
[ 1 , 8 , 9 , 2 , 0 , 0 , 4 , 5 ]
>>> a[ 1 : - 1 ] = []
>>> a
[ 1 , 5 ]
|
1.10 命名列表切割方式 1 2 3 4 5 6 | >>> a = [ 0 , 1 , 2 , 3 , 4 , 5 ]
>>> LASTTHREE = slice ( - 3 , None )
>>> LASTTHREE
slice ( - 3 , None , None )
>>> a[LASTTHREE]
[ 3 , 4 , 5 ]
|
|