Python 一行代码能实现丧心病狂的功能

作者:天元浪子 时间:2023-07-25 08:32:17 

手头有 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 使用过程中用一行代码实现过哪些激动人心的功能呢?

来源:https://blog.csdn.net/xufive/article/details/96475103

标签:Python,一行代码
0
投稿

猜你喜欢

  • ASP 支持中文的len(),left(),right()的函数代码

    2011-03-03 10:59:00
  • 完美的渐变透明效果,支持Firefox

    2008-06-18 18:18:00
  • 简洁js的隔行变色代码

    2008-06-18 18:17:00
  • pre标签自动换行

    2009-03-13 13:37:00
  • 浅谈SQL与PLSQL开发实战

    2011-05-05 08:15:00
  • sqlserver bcp(数据导入导出工具)一般用法与命令详解

    2012-07-11 15:56:39
  • 如何定义记录集打开的游标类型?

    2009-11-15 20:19:00
  • 《悟透JavaScript》之 甘露模型

    2008-06-09 14:03:00
  • 带你深入了解数据库设计中的英文术语表

    2008-12-09 14:53:00
  • 影响SQL Server性能的关键三个方面

    2009-02-13 16:59:00
  • asp源码实现Access数据库的建立或压缩

    2007-08-06 16:54:00
  • Google Chrome CSS选择器速度测试比较

    2008-10-06 13:24:00
  • 在SQL Server中编写通用数据访问方法

    2009-01-20 11:35:00
  • 网页设计经验谈

    2007-10-30 13:11:00
  • 利用windows任务计划实现oracle的定期备份

    2009-08-31 12:24:00
  • 教你快速掌握怎样在Windows下升级MySQL

    2008-12-31 17:08:00
  • sql如何实现复合查询?

    2010-05-19 21:25:00
  • IE6中隐形的PNG8图片

    2009-11-27 18:38:00
  • 长期使用中型Access数据库的一点经验

    2007-12-21 13:23:00
  • asp让网站自动识别手机访问跳转至手机网站

    2014-12-06 09:36:02
  • asp之家 网络编程 m.aspxhome.com