我手头有109张头部CT断层图像,打算利用这些图像尝试头部3D重建。其中一项基本任务就是读出这些图片数据,并将它们组织成三维数据结构(实际上是四维的,因为每个像素点有四个RGBA通道)。这个数据结构自然是一个numpy的ndarray对象。我习惯用PIL读取图片文件。因此,需要导入两个模块:importnumpyasnpfromPILimportImage接下来我用一行代码将109张图片读入一个109x256x256x4的numpy数组,耗时172毫秒:data=np.stack([np.array(Image.open('head%d.png'%i))foriinrange(109)],axis=0)通常,上面这行代码应该这样写:data=list()foriinrange(109):img=Image.open('head%d.png'%i)img=np.array(img)data.append(img)data=np.stack(data,axis=0)我把这些代码写成一句台词,却丝毫没有晦涩难懂之感,依然如诗般优美,如自然语言般通俗!那一刻我脑洞大开,很想知道python高手一行代码能做什么?当然,限制是不能引用自定义模块,可以使用内置模块或者常用的第三方模块。上网查了一下,发现这个问题好像是python的专属问题。用其他语言的一行代码很难做某事。知乎上有一个名为《一行 Python 能实现什么丧心病狂的功能?》的帖子,其镜像帖子只有java和js。点进去发现和python完全不一样。在知乎上整理了这篇文章的内容,觉得有意思,分享给大家。1.一行代码打印乘法公式print('\n'.join([''.join(["%2sx%2s=%2s"%(j,i,i*j)forjinrange(1,i+1)])foriinrange(1,10)]))2.打印迷宫的一行代码print(''.join(__import__('random').choice('\u2571\u2572')foriinrange(50*24)))3.一行表达爱意的代码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'')forxinrange(-30,30)])foryinrange(30,-30,-1)]))4.一行代码打印小乌龟print('\n'.join([''.join(['*'ifabs((lambdaa:lambdaz,c,n:a(a,z,c,n))(lambdas,z,c,n:z如果n==0否则s(s,z*z+c,c,n-1))(0,0.02*x+0.05j*y,40))<2else''forxinrange(-80,20)])foryinrange(-20,20)]))什么令人兴奋的功能你在使用python的过程中一行代码实现了吗?
