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中的一些类型转换函数小结
Feb 10 Python
Python中利用原始套接字进行网络编程的示例
May 04 Python
Python中tell()方法的使用详解
May 24 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
Python中常用的内置方法
Jan 28 Python
详解python的argpare和click模块小结
Mar 31 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
django rest framework serializer返回时间自动格式化方法
Mar 31 Python
Python Selenium XPath根据文本内容查找元素的方法
Dec 07 Python
用Python生成会跳舞的美女
Jan 18 Python
Python实现聚类K-means算法详解
Jul 15 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缓存类实例
2014/07/18 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue监听对象及对象属性问题
2018/08/20 Javascript
python列表操作使用示例分享
2014/02/21 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
django-filter和普通查询的例子
2019/08/12 Python
python输出数学符号实例
2020/05/11 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
浅谈Python中的模块
2020/06/10 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
社区十八大感言
2014/01/19 职场文书
运动会800米加油稿
2014/02/22 职场文书
小学庆六一活动方案
2014/02/28 职场文书
优乐美广告词
2014/03/14 职场文书
品牌服务方案
2014/06/03 职场文书
2015年护士节活动总结
2015/02/10 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
Spring Cloud OAuth2实现自定义token返回格式
2022/06/25 Java/Android