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 相关文章推荐
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
Python基类函数的重载与调用实例分析
Jan 12 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
python中map()与zip()操作方法
Feb 27 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
Python random模块用法解析及简单示例
Dec 18 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
Python 编程速成(推荐)
Apr 15 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 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 session_start()问题解疑(详细介绍)
2013/07/05 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
php微信开发之谷歌测距
2018/06/14 PHP
javascript 函数调用规则
2009/08/26 Javascript
JS 实现导航栏悬停效果(续)
2013/09/24 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
python实现简单socket通信的方法
2016/04/19 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
浅析Python迭代器的高级用法
2020/07/16 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
高校自主招生自荐信
2013/12/09 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
师说教学反思
2014/02/07 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
护理专业自我评价
2015/03/11 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL