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中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
详解K-means算法在Python中的实现
Dec 05 Python
Python3实现取图片中特定的像素替换指定的颜色示例
Jan 24 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
python set内置函数的具体使用
Jul 02 Python
Python Celery多队列配置代码实例
Nov 22 Python
Python实现bilibili时间长度查询的示例代码
Jan 14 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
Python如何输出整数
Jun 07 Python
python 实现定时任务的四种方式
Apr 01 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根据用户语言跳转相应网页
2015/11/04 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
python基于phantomjs实现导入图片
2016/05/13 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
python 不以科学计数法输出的方法
2018/07/16 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
python opencv实现图像边缘检测
2019/04/29 Python
python跳出双层for循环的解决方法
2019/06/24 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
一些网络技术方面的面试题
2014/05/01 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
《和我们一样享受春天》教学反思
2014/02/07 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
广播节目策划方案
2014/05/23 职场文书
本科应届生自荐信
2014/06/29 职场文书
家庭困难证明
2014/10/12 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2014年销售部工作总结
2014/12/01 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python