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语言中的按位运算符
Nov 26 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
Python中Class类用法实例分析
Nov 12 Python
tensorflow实现加载mnist数据集
Sep 08 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
python使用Plotly绘图工具绘制水平条形图
Mar 25 Python
python logging模块的使用总结
Jul 09 Python
python实现超市管理系统(后台管理)
Oct 25 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
详解python常用命令行选项与环境变量
Feb 20 Python
python中upper是做什么用的
Jul 20 Python
Python unittest discover批量执行代码实例
Sep 08 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中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
Javascript中的Split使用方法与技巧
2007/03/09 Javascript
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
webpack中CommonsChunkPlugin详细教程(小结)
2017/11/09 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
python 实现归并排序算法
2012/06/05 Python
教你安装python Django(图文)
2013/11/04 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python编写弹球游戏的实现代码
2018/03/12 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python中sys.argv函数精简概括
2018/07/08 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
北京振戎融通Java面试题
2015/09/03 面试题
材料化学应届生求职信
2013/10/09 职场文书
会计实习自我鉴定
2013/12/04 职场文书
实习自我鉴定
2013/12/15 职场文书
我的画教学反思
2014/04/28 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
老人节主持词
2015/07/04 职场文书