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

 更新时间:2020年01月18日 19:21:27   作者:天元浪子  
这篇文章主要介绍了Python 一行代码能实现丧心病狂的功能,需要的朋友可以参考下

手头有 109 张头部 CT 的断层扫描图片,我打算用这些图片尝试头部的三维重建。基础工作之一,就是要把这些图片数据读出来,组织成一个三维的数据结构(实际上是四维的,因为每个像素有 RGBA 四个通道)。

这个数据结构,自然是 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)]))

2. 一行代码打印迷宫

print(''.join(__import__('random').choice('\u2571\u2572') for i in range(50*24)))

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)]))

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 使用过程中用一行代码实现过哪些激动人心的功能呢?欢迎留言讨论。

相关文章

  • openCV入门学习基础教程第二篇

    openCV入门学习基础教程第二篇

    人脸识别,物体检测,OpenCV是基石,下面这篇文章主要给大家介绍了关于openCV入门学习基础教程的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Python之标点符号string.punctuation的使用

    Python之标点符号string.punctuation的使用

    Python的string模块提供了一个方便的属性string.punctuation,其中包含所有ASCII标点符号字符,这使得在处理和识别字符串中的标点符号时非常有用,可以通过简单的in关键字来检测字符是否为标点
    2024-09-09
  • 解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程

    解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程

    这篇文章主要介绍了解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程,本文图文并茂给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

    Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

    这篇文章主要介绍了Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法,需要的朋友可以参考下
    2020-03-03
  • Python中的函数作用域

    Python中的函数作用域

    在python中,一个函数就是一个作用域。这篇文章重点给大家介绍python中的函数作用域,感兴趣的朋友一起看看吧
    2018-05-05
  • Python读取视频的两种方法(imageio和cv2)

    Python读取视频的两种方法(imageio和cv2)

    这篇文章主要为大家详细介绍了Python读取视频的两种方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答

    Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答

    关于音频, PyAudio 这个库, 可以实现开启麦克风录音, 可以播放音频文件等等。文章介绍了如何使用Python第三方库PyAudio进行麦克风录音然后自动播放已经合成的语音实现语音交互回答,需要的朋友可以参考下
    2019-08-08
  • Python Scrapy实战之古诗文网的爬取

    Python Scrapy实战之古诗文网的爬取

    本文将利用Python中Scrapy框架,实现爬取古诗文网上的诗词数据,具体包括诗词的标题信息。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-05-05
  • python生成密码字典详解

    python生成密码字典详解

    大家好,本篇文章主要讲的是python生成密码字典详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • 如何更优雅地写python代码

    如何更优雅地写python代码

    这篇文章主要介绍了如何更优雅地写python代码,我们写代码,往往还是按照其它语言的思维习惯来写,那样的写法不仅运行速度慢,代码读起来也费尽,给人一种拖泥带水的感觉,需要的朋友可以参考下
    2019-07-07

最新评论