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


Posted in Python onJanuary 18, 2020

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

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

这个数据结构,自然是 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 能实现什么丧心病狂的功能?》的帖子,其镜像贴只有 java 的和 js 的,点进去发现,和 python 的完全不是一个概念。

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

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

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)]))

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

2. 一行代码打印迷宫

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

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

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' ') for x in range(-30, 30)]) for y in range(30, -30, -1)]))

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

4. 一行代码打印小龟龟

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)]))

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

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

Python 相关文章推荐
python类参数self使用示例
Feb 17 Python
python基础教程之常用运算符
Aug 29 Python
Python浅拷贝与深拷贝用法实例
May 09 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
Python字符串的全排列算法实例详解
Jan 07 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
Python列表对象实现原理详解
Jul 01 Python
django之静态文件 django 2.0 在网页中显示图片的例子
Jul 28 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
Python和Sublime整合过程图示
Dec 25 Python
Python unittest基本使用方法代码实例
Jun 29 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 #Python
Pytorch 实现数据集自定义读取
Jan 18 #Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 #Python
selenium 多窗口切换的实现(windows)
Jan 18 #Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 #Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 #Python
Pytorch之finetune使用详解
Jan 18 #Python
You might like
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
jquery ready()的几种实现方法小结
2010/06/18 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python中还原JavaScript的escape函数编码后字符串的方法
2014/08/22 Python
python写入xml文件的方法
2015/05/08 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Python类型转换的魔术方法详解
2020/12/23 Python
酒店管理自荐信
2013/10/23 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
住宅质量保证书
2014/04/29 职场文书
委托书怎样写
2014/08/30 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
财务总监岗位职责
2015/02/03 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python