這篇博客其實(shí)就是這個(gè)集合整理后一部分的公開亮相。如果你已經(jīng)是個(gè)python大牛,那么基本上你應(yīng)該知道這里面的大多數(shù)用法了,但我想你應(yīng)該也能發(fā)現(xiàn)一些你不知道的新技巧。而如果你之前是一個(gè)c,c++,java的程序員,同時(shí)在學(xué)習(xí)python,或者干脆就是一個(gè)剛剛學(xué)習(xí)編程的新手,那么你應(yīng)該會(huì)看到很多特別有用能讓你感到驚奇的實(shí)用技巧,就像我當(dāng)初一樣。
每一個(gè)技巧和語言用法都會(huì)在一個(gè)個(gè)實(shí)例中展示給大家,也不需要有其他的說明。我已經(jīng)盡力把每個(gè)例子弄的通俗易懂,但是因?yàn)樽x者對(duì)python的熟悉程度不同,仍然可能難免有一些晦澀的地方。所以如果這些例子本身無法讓你讀懂,至少這個(gè)例子的標(biāo)題在你后面去google搜索的時(shí)候會(huì)幫到你。
整個(gè)集合大概是按照難易程度排序,簡(jiǎn)單常見的在前面,比較少見的在最后。
1.1 拆箱
代碼如下:
>>> 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 拆箱變量交換
代碼如下:>>> a, b = 1, 2
>>> a, b = b, a
>>> a, b
(2, 1)
1.3 擴(kuò)展拆箱(只兼容python3)
代碼如下:>>> a, *b, c = [1, 2, 3, 4, 5]
>>> a
1
>>> b
[2, 3, 4]
>>> c
5
1.4 負(fù)數(shù)索引
代碼如下:>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a[-1]
10
>>> a[-3]
8
1.5 切割列表
代碼如下:>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a[2:8]
[2, 3, 4, 5, 6, 7]
1.6 負(fù)數(shù)索引切割列表
代碼如下:>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> a[-4:-2]
[7, 8]
1.7指定步長(zhǎng)切割列表
代碼如下:>>> 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 負(fù)數(shù)步長(zhǎng)切割列表
代碼如下:>>> 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 列表切割賦值
代碼如下:>>> 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 命名列表切割方式
代碼如下:>>> a = [0, 1, 2, 3, 4, 5]
>>> LASTTHREE = slice(-3, None)
>>> LASTTHREE
slice(-3, None, None)
>>> a[LASTTHREE]
[3, 4, 5]
1.11 列表以及迭代器的壓縮和解壓縮
新聞熱點(diǎn)
疑難解答
圖片精選