一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选

原文链接: https://blog.csdn.net/xufive/article/details/96475103

640?wx_fmt=gif

一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选_第1张图片

作者 | 许文武

责编 | 郭芮

出品 | CSDN 博客

手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建。基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际上是四维的,因为每个像素有 RGBA 四个通道)。

一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选_第2张图片

这个数据结构,自然是 numpy 的 ndarray 对象,读取图像文件我习惯使用 PIL。因此,需要导入两个模块:

 
import numpy as npfrom PIL import Imageas 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)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)
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 的完全不是一个概念。

整理了一下知乎上这篇文章的内容,颇觉有趣,分享给大家。

 

 

640?wx_fmt=png

一行代码打印乘法口诀

 

 
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)]))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博文精选_第3张图片

 

640?wx_fmt=png

 一行代码打印迷宫

 

 
print(''.join(__import__('random').choice('\u2571\u2572') for i in range(50*24)))''.join(__import__('random').choice('\u2571\u2572'for i in range(50*24)))

 

一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选_第4张图片

 

640?wx_fmt=png

一行代码表白爱情

 

 
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)]))!'\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(-3030)]) for y in range(30-30-1)]))!

 

一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选_第5张图片

 

640?wx_fmt=png

一行代码打印小龟龟

 

 
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)]))''.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博文精选_第6张图片

 

 

你在 Python 使用过程中用一行代码实现过哪些激动人心的功能呢?欢迎留言讨论。

作者:许文武,博客昵称「天元浪子」,本文首发于作者CSDN博客https://blog.csdn.net/xufive/article/details/96475103。

 

牛了,这几个案例让你迅速了解AI技术!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

【End】

一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选_第7张图片

 热 文 推 荐 

全球 JavaScript 开发者薪酬揭晓,你拖后腿了吗?

性能比 GPU 高 100 倍!首款可编程忆阻器 AI 计算机面世

中国第一程序员传

抢饭碗?这位 05 后开发三款小程序!

非科班出身程序员,如何超越科班程序员?

344亿天价罚单也救不了Libra!

面试官问我:你们的数据库是怎么架构的?

☞10分钟学会用Pandas做多层级索引

江湖又现中科大少年班的传说

中国第一程序员,微软得不到他就要毁了他!

一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选_第8张图片点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

 

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

你可能感兴趣的:(一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选)