無所不能的Python能幹什麼?看看它的一行代碼實現功能瞬間明白了

文章主要內容介紹了Python 一行代碼能實現喪心病狂的功能,感覺到有趣的朋友或者對你學習有啟發的可以多多參考下!

哈哈,現在我手頭有 109 張頭部 CT 的斷層掃描圖片,我打算用這些圖片嘗試頭部的三維重建。基礎工作之一,就是要把這些圖片數據讀出來,組織成一個三維的數據結構(實際上是四維的,因為每個像素有 RGBA 四個通道)

無所不能的Python能幹什麼?看看它的一行代碼實現功能瞬間明白了

這個數據結構,自然是 numpy 的 ndarray 對象,讀取圖像文件我習慣使用 PIL。因此,需要導入兩個模塊:

<code>import numpy as np
from PIL import Image/<code>

接下來,我用一行代碼就把 109 張圖片讀到了一個 109x256x256x4 的 numpy 數組中,耗時 172 毫秒:

<code>data = np.stack([np.array(Image.open('head%d.png'%i)) for i in range(109)], axis=0)/<code>

通常,上面這一行代碼應該寫成這樣:

無所不能的Python能幹什麼?看看它的一行代碼實現功能瞬間明白了

我把這些代碼寫成一行,卻毫無晦澀艱深之感,仍然像詩歌一樣優美、像自然語言一樣通俗!

那一刻,我腦洞大開,很想知道 python 高手們只用一行代碼都能幹些什麼?當然,限定條件是不能引用自定義的模塊,可以使用內置模塊或通用的第三方模塊。上網一搜,發現這個問題好像是 python 的專屬問題,其他語言很難用一行代碼做點什麼。

1. 一行代碼打印乘法口訣

<code>print('\n'.join([' '.join(["%2s x%2s = %2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))/<code>
無所不能的Python能幹什麼?看看它的一行代碼實現功能瞬間明白了

2. 一行代碼打印迷宮

<code>print(''.join(__import__('random').choice('\u2571\u2572') for i in range(50*24)))/<code>
無所不能的Python能幹什麼?看看它的一行代碼實現功能瞬間明白了

3. 一行代碼表白愛情

<code>print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 <= 0else' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))/<code>


無所不能的Python能幹什麼?看看它的一行代碼實現功能瞬間明白了

4. 一行代碼打印小龜龜

<code>print('\n'.join([''.join(['*' if abs((lambda a:lambda z,c,n:a(a,z,c,n))(lambda s,z,c,n:z if n==0 else s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2 else ' ' for x in range(-80,20)]) for y in range(-20,20)]))/<code>
無所不能的Python能幹什麼?看看它的一行代碼實現功能瞬間明白了

你在 python 使用過程中用一行代碼實現過哪些激動人心的功能呢?歡迎留言討論。

結尾

最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,並在後臺私信小編:“07”即可領取。


分享到:


相關文章: