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中的迭代器和生成器
Oct 26 Python
python去除字符串中的换行符
Oct 11 Python
Python实现注册、登录小程序功能
Sep 21 Python
Python使用pandas对数据进行差分运算的方法
Dec 22 Python
对Python使用mfcc的两种方式详解
Jan 09 Python
Python使用正则表达式分割字符串的实现方法
Jul 16 Python
python 模拟银行转账功能过程详解
Aug 06 Python
详解Python在使用JSON时需要注意的编码问题
Dec 06 Python
Python DES加密实现原理及实例解析
Jul 17 Python
浅析python实现动态规划背包问题
Dec 31 Python
Pytorch之扩充tensor的操作
Mar 04 Python
教你如何使用Python下载B站视频的详细教程
Apr 29 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
基于mysql的bbs设计(四)
2006/10/09 PHP
php计算十二星座的函数代码
2012/08/21 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
js中的面向对象入门
2017/03/06 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
基于jQuery实现的设置文本区域的光标位置
2018/06/15 jQuery
微信小程序API—获取定位的详解
2019/04/30 Javascript
vue实现分页加载效果
2019/12/24 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
Python文件如何引入?详解引入Python文件步骤
2018/12/10 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
python如何基于redis实现ip代理池
2020/01/17 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
保护环境倡议书范文
2014/05/13 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
微信小程序基础教程之echart的使用
2021/06/01 Javascript
MySQL派生表联表查询实战过程
2022/03/20 MySQL
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript