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中字符编码简介、方法及使用建议
Jan 08 Python
python使用pil生成缩略图的方法
Mar 26 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python用插值法绘制平滑曲线
Feb 19 Python
python global关键字的用法详解
Sep 05 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
从numpy数组中取出满足条件的元素示例
Nov 26 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
Python 按比例获取样本数据或执行任务的实现代码
Dec 03 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
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
js中document.write和document.writeln的区别
2018/03/11 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python实现的三层BP神经网络算法示例
2018/02/07 Python
python使用Matplotlib画饼图
2018/09/25 Python
把pandas转换int型为str型的方法
2019/01/29 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
师范生自荐信
2013/10/27 职场文书
国际政治个人自荐信范文
2013/11/26 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
内衣营销方案
2014/03/15 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
具结保证书
2015/01/17 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Python&Matlab实现灰狼优化算法的示例代码
2022/03/21 Python