當前位置:
首頁 > 知識 > 一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

作者 | 許文武

責編 | 郭芮

出品 | CSDN 博客

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

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

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

import numpy as np
from PIL import Image

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

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

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

data = list
for i in range(109):
img = Image.open("head%d.png"%i)
img = np.array(img)
data.append(img)
data = np.stack(data, axis=0)

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

那一刻,我腦洞大開,很想知道 Python 高手們只用一行代碼都能幹些什麼?當然,限定條件是不能引用自定義的模塊,可以使用內置模塊或通用的第三方模塊。上網一搜,發現這個問題好像是 Python 的專屬問題,其他語言很難用一行代碼做點什麼。知乎上有一篇名為《一行 Python 能實現什麼喪心病狂的功能?》(https://www.zhihu.com/question/37046157)的帖子,其鏡像貼只有 Java 的和 JS 的,點進去發現,和 Python 的完全不是一個概念。

整理了一下知乎上這篇文章的內容,頗覺有趣,分享給大家。

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行代碼列印乘法口訣

print("
".join([" ".join(["%2s x%2s = %2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行代碼列印迷宮

print("".join(__import__("random").choice("u2571u2572") for i in range(50*24)))

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行代碼表白愛情

print("
".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)]))!

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

一行代碼列印小龜龜

print("
".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)]))

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

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

作者:許文武,博客昵稱「天元浪子」,本文首發於作者CSDN博客https://blog.csdn.net/xufive/article/details/96475103。

【End】

一行 Python 代碼能實現什麼喪心病狂的功能?| CSDN博文精選

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

全面對比 MATLAB、Julia、Python,誰在科學計算中更勝一籌?
面試穩了!BATJ 等大廠 400+ 道面試題全匯總

TAG:CSDN |