社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

一行Python代码能实现什么丧心病狂的功能?

CDA数据分析师 • 6 年前 • 492 次点击  

作者 |  天元浪子

来源 | CSDN博客


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



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


1import numpy as np
2from PIL import Image



接下来,我用一行代码就把 109 张图片读到了一个 109x256x256x4 的 numpy 数组中,耗时 172 毫秒:


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


通常,上面这一行代码应该写成这样:


1data = list()
2for i in range(109):
3img = Image.open('head%d.png'%i)
4img = np.array(img)
5data.append(img)
6data = np.stack(data, axis=0)



我把这些代码写成一行,却毫无晦涩艰深之感,仍然像诗歌一样优美、像自然语言一样通俗!


那一刻,我脑洞大开,很想知道 python 高手们只用一行代码都能干些什么?当然,限定条件是不能引用自定义的模块,可以使用内置模块或通用的第三方模块。上网一搜,发现这个问题好像是 python 的专属问题,其他语言很难用一行代码做点什么。知乎上有一篇名为《一行 Python 能实现什么丧心病狂的功能?》(https://www.zhihu.com/question/37046157)的帖子,其镜像贴只有 java 的和 js 的,点进去发现,和 python 的完全不是一个概念。


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


1. 一行代码打印乘法口诀





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


2. 一行代码打印迷宫


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


3. 一行代码表白爱情


1print('\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)]))

4. 一行代码打印小龟龟


1print('\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)]))

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



原文:

https://blog.csdn.net/xufive/article/details/96475103







CDA 课程咨询丨赵老师

联系电话:13381275813
扫描二维码








更多精彩文章

· 从全方位为你比较3种数据科学工具的比较:Python、R和SAS

· 干货 | 如何用Python开启你的机器学习之路

· 免费!10本必读的机器学习书籍(附下载)

· AI就业排名出炉:机器学习霸榜、薪资最高;但AI岗位需求正放缓

· Python 最抢手、Java 最流行、7000 位程序员揭秘 2019 软件开发现状

· CDA第十届认证考试数据报告重磅发布!


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/36126
 
492 次点击