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导出Excel图表以及导出为图片的方法
Nov 07 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
Apr 27 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
Nov 14 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
在python中实现对list求和及求积
Nov 14 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
Python版中国省市经纬度
Feb 11 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
Mar 31 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
python 基于Apscheduler实现定时任务
Dec 15 Python
python3 hdf5文件 遍历代码
May 19 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
PHP并发查询MySQL的实例代码
2017/08/09 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
vxe-table vue table 表格组件功能
2019/05/26 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
tensorflow如何批量读取图片
2019/08/29 Python
python实现的发邮件功能示例
2019/09/11 Python
Python进程池Pool应用实例分析
2019/11/27 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
python 追踪except信息方式
2020/04/25 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
如何提高MySql的安全性
2014/06/19 面试题
光荣入党自我鉴定
2014/01/22 职场文书
学校安全生产承诺书
2014/05/23 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
结对共建协议书
2014/08/20 职场文书
自我工作评价范文
2015/03/06 职场文书
博士给导师的自荐信
2015/03/06 职场文书
焦裕禄观后感
2015/06/03 职场文书
python装饰器代码解析
2022/03/23 Python
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技