一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选
作者 | 许文武
责编 | 郭芮
出品 | CSDN 博客
手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建。基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际上是四维的,因为每个像素有 RGBA 四个通道)。
这个数据结构,自然是 numpy 的 ndarray 对象,读取图像文件我习惯使用 PIL。因此,需要导入两个模块:
import numpy as npfrom PIL import Imageas 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)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)
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 能实现什么丧心病狂的功能?》(https://www.zhihu.com/question/37046157)的帖子,其镜像贴只有 Java 的和 JS 的,点进去发现,和 Python 的完全不是一个概念。
整理了一下知乎上这篇文章的内容,颇觉有趣,分享给大家。
一行代码打印乘法口诀
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)]))join([' '.join(["%2s x%2s = %2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
一行代码打印迷宫
print(''.join(__import__('random').choice('\u2571\u2572') for i in range(50*24)))''.join(__import__('random').choice('\u2571\u2572') for i in range(50*24)))
一行代码表白爱情
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)]))!'\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)]))!
一行代码打印小龟龟
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)]))''.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 使用过程中用一行代码实现过哪些激动人心的功能呢?欢迎留言讨论。
作者:许文武,博客昵称「天元浪子」,本文首发于作者CSDN博客https://blog.csdn.net/xufive/article/details/96475103。
牛了,这几个案例让你迅速了解AI技术!
https://edu.csdn.net/topic/ai30?utm_source=csdn_bw
【End】
热 文 推 荐
☞全球 JavaScript 开发者薪酬揭晓,你拖后腿了吗?
☞性能比 GPU 高 100 倍!首款可编程忆阻器 AI 计算机面世
☞中国第一程序员传
☞抢饭碗?这位 05 后开发三款小程序!
☞非科班出身程序员,如何超越科班程序员?
344亿天价罚单也救不了Libra!
面试官问我:你们的数据库是怎么架构的?
☞10分钟学会用Pandas做多层级索引
江湖又现中科大少年班的传说
中国第一程序员,微软得不到他就要毁了他!
点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。
你点的每个“在看”,我都认真当成了喜欢
一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选相关推荐
- 一行Python代码能实现什么丧心病狂的功能?
作者 | 天元浪子 来源 | CSDN博客 手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建.基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际 ...
- c++代码表白_一行 Python 代码能实现什么丧心病狂的功能? | CSDN博文精选
作者 | 许文武 责编 | 郭芮 出品 | CSDN 博客 手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建.基础工作之一,就是要把这些图片数据读出来,组织成一个三维的 ...
- 一行 Python 代码能实现什么丧心病狂的功能?
手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建.基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际上是四维的,因为每个像素有 RGBA 四个通道 ...
- python文件之间的相互调用_一行 Python 代码能实现什么丧心病狂的功能?
python一直被病垢运行速度太慢,但是实际上python的执行效率并不慢,慢的是python用的解释器Cpython运行效率太差. "一行代码让python的运行速度提高100倍" ...
- Python识别文字,实现看图说话 | CSDN博文精选
作者 | 张小腿 来源 | CSDN博客 现在写文件很多网站都不让复制了,所以每次都是截图然后发到QQ上然后用手机QQ的文字识别再发回电脑.感觉有点小麻烦了,所以想自己写一个小软件方便方便自己,就有了 ...
- python画图代码-Python为啥这么牛?一行Python代码除了画图竟然还有这些功能!
在开始这个话题之前,我想问大家:什么是 Python?根据 Python 之父 Guido van Rossum 的话,Python是:一种高级程序语言,其核心设计哲学是代码可读性和语法,能够让程序员 ...
- 朋友圈装死,微博蹦迪,Python教你如何掌握女神情绪变化 | CSDN博文精选
作者 | A字头 来源 | 数据札记倌 很多人都是在朋友圈装死,微博上蹦迪. 微信朋友圈已经不是一个可以随意发表心情的地方了,微博才是! 所以你不要傻傻盯着女神的朋友圈发呆啦! 本文教你如何用Pyth ...
- python图片识别论文_Python识别文字,实现看图说话 | CSDN博文精选
原标题:Python识别文字,实现看图说话 | CSDN博文精选 作者 | 张小腿 来源 | CSDN博客 现在写文件很多网站都不让复制了,所以每次都是截图然后发到QQ上然后用手机QQ的文字识别再发回 ...
- 一行Python代码能实现这么多丧心病狂的功能?(代码可复制)
最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...
最新文章
- python自带图形模块_检查单击是否在图形对象内[Python图形模块]
- linux unshare 命令,Linux ip netns 命令
- hdu 5616 Jam's balance(简单dp)
- OP07高级电路图-摘自:Reza Moghim
- android 多手指触摸屏,AIR Android:关于多点触摸
- ubuntu彻底卸载apache2、mysql、php(各版本通用)
- Angularjs $http.post
- 燃爆了!胡歌秒变最帅产品经理发布荣耀V20!
- 菜鸟进阶Linux高手之路——第四天(下)
- cannot help doing用法
- VAAI 工作原理及存储阵列支持
- java zip_Java压缩技术(二) ZIP压缩——Java原生实现
- iText PDF设置字体样式
- TiDB分布式数据库培训实战教程(分布式集群架构、分布式大数据平台)
- Android项目实战系列—基于博学谷(一)项目综述
- 【附源码】计算机毕业设计JAVA大学生旅游拼团网站
- ITIL服务管理知识体系的介绍
- 后台管理进程GameMaster
- 3d建模软件安装教程,游戏建模必备软件推荐(收藏)
- LeetCode 213. House Robber II(小偷游戏)
热门文章
- (转)测试用例的设计方法(全)之三 判定表、正交实验
- 《TensorFlow 2.0深度学习算法实战教材》学习笔记(五、神经网络)
- [Python] virtualenvwrapper 常见问题
- Pytorch+MINST 全连接神经网路训练学习
- vue限制点击次数_vue点击切换颜色限制个数(用了mui框架)
- centos查看文件修改历史_Linux环境下查看历史操作命令及清除方法
- pytorch分布式报错 “tensor must be non-overlapping and dense“
- vba下标越界9怎么解决_铝模气泡怎么解决?看9个常见问题防治
- 【QT】QT从零入门教程(九):QT常用控件 [QSlider、QSpinBox、QComboBox、QRadioButton]
- 【OpenCV】轮廓与凸包