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

系统 1518 0
原文链接: https://www.bagevent.com/event/5396631

一行Python代码能实现什么丧心病狂的功能?_第1张图片


作者 |   天元浪子

来源 | CSDN博客


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


一行Python代码能实现什么丧心病狂的功能?_第2张图片


这个数据结构,自然是 numpy 的 ndarray 对象,读取图像文件我习惯使用 PIL。因此,需要导入两个模块:


            

1 import  numpy  as  np
2 from  PIL  import  Image


接下来,我用一行代码就把 109 张图片读到了一个 109x256x256x4 的 numpy 数组中,耗时 172 毫秒:


            

1 data  = np.stack([np.array(Image. open ( 'head%d.png' %i))  for  i  in  range( 109 )], axis= 0 )


通常,上面这一行代码应该写成这样:


            

1 data = list()
2 for i in range(109):
3 img = Image.open('head%d.png'%i)
4 img = np.array(img)
5 data.append(img)
6 data = np.stack(data, axis=0)


我把这些代码写成一行,却毫无晦涩艰深之感,仍然像诗歌一样优美、像自然语言一样通俗!


那一刻,我脑洞大开,很想知道 python 高手们只用一行代码都能干些什么?当然,限定条件是不能引用自定义的模块,可以使用内置模块或通用的第三方模块。上网一搜,发现这个问题好像是 python 的专属问题,其他语言很难用一行代码做点什么。知乎上有一篇名为《一行 Python 能实现什么丧心病狂的功能?》(https://www.zhihu.com/question/37046157)的帖子,其镜像贴只有 java 的和 js 的,点进去发现,和 python 的完全不是一个概念。


整理了一下知乎上这篇文章的内容,颇觉有趣,分享给大家。


1. 一行代码打印乘法口诀


            
              
                1print('\n'.join([' '.join(["%2s x%2s = %2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
                
                  '\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代码能实现什么丧心病狂的功能?_第3张图片


2. 一行代码打印迷宫


            

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

一行Python代码能实现什么丧心病狂的功能?_第4张图片


3. 一行代码表白爱情


            

1 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  <=  0 else ' ' for  x  in  range( -30 30 )])  for  y  in  range( 30 -30 -1 )]))

一行Python代码能实现什么丧心病狂的功能?_第5张图片

4. 一行代码打印小龟龟


            

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

一行Python代码能实现什么丧心病狂的功能?_第6张图片

你在 Python 使用过程中用一行代码实现过哪些激动人心的功能呢?欢迎留言讨论。


原文链接:

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


(*本文为 AI科技大本营转载文章,转载请联系原作者


精彩推荐



“只讲技术,拒绝空谈 ”2019 AI开发者大会将于9月6日-7日在北京举行,这一届AI开发者大会有哪些亮点?一线公司的大牛们都在关注什么?AI行业的风向是什么?2019 AI开发者大会,倾听大牛分享,聚焦技术实践,和万千开发者共成长。 目前,大会早鸟票抢购中~扫码购票,领先一步!


一行Python代码能实现什么丧心病狂的功能?_第7张图片

推荐阅读

  • 阿里达摩院做AI这两

  • 性能比GPU高100倍 !华人教授研发全球首个可编程忆阻器AI计算

  • 豪投10亿!华为放话:3年培养100万AI人才!网友神回应了

  • 《长安十二时辰》教了哪些算法知识?

  • 非科班出身程序员,如何超越科班程序员?

  • 谷歌停止中国版搜索引擎;李楠宣布离职魅族;微软用 Rust 替代 C/C++ | 极客头条

  • 首批8款5G手机获3C认证: 华为占4款; IBM获AT&T“几十亿美元”云计算合同; 马库斯: 未来薪酬将以Libra发放

  • 用50年前NASA送阿波罗上天的计算机挖矿什么体验? 出一个块要10^18年……

640?wx_fmt=png 你点的每个“在看”,我都认真当成了喜欢

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论