【震惊小伙伴的单行代码—Python篇】的实践操作

偶然间在实验楼上看到一篇文章【震惊小伙伴的单行代码—Python篇】,觉得还蛮有趣的,所以就想看看,但是我自己的电脑没有python环境,所以就直接利用实验楼上的在线python环境对文章里的10个单行python代码进行了实践。

原文这里就不粘贴了,直接点上面那个链接进去看就行了,或者去搜索也肯定有。

图一:

《【震惊小伙伴的单行代码—Python篇】的实践操作》 单行python代码1.png

如上图:

  • 第一条是:让列表中的每个元素都乘以2,代码如下:
print map(lambda x: x * 2, range(1,11))
  • 第二条是:求列表中的所有元素之和,代码如下:
print sum(range(1,1001))
  • 第三条是:判断一个字符串中是否存在某些词,代码如下:
wordlist = ["scala", "akka", "play framework", "sbt", "typesafe"]
tweet = "This is an example tweet talking about scala and sbt."
print map(lambda x: x in tweet.split(),wordlist)

但是发现有问题,因为sbt明明也在里面啊,但是却显示Flase,后来一检查,发现后面紧跟着多了一个·,所以第一次的时候判断没有,第二次就有了。

图二:

《【震惊小伙伴的单行代码—Python篇】的实践操作》 单行python代码2.png

这一条呢是:读取文件,代码如下:

print open("ten_one_liners.py").readlines()

开始的时候没有创建ten_one_liners.py,因此报错,后来一想,真是笨死了,所以创建了文件,并简单写了几句话。

图三:

《【震惊小伙伴的单行代码—Python篇】的实践操作》 单行python代码3.png

上图中的

  • 第一条是:祝你生日快乐!代码如下:
print map(lambda x: "Happy Birthday to " + ("you" if x != 2 else "dear Name"),range(4))

但是,是不是哪里有问题啊?要是第三个dear name可以自己输入名字就更好了,是可以实现的,但是我没做;

  • 第二条是:过滤列表中的数值,代码如下:
print reduce(lambda(a,b),c: (a+[c],b) if c > 60 else (a,b + [c]), [49, 58, 76, 82, 88, 90],([],[]))

图四:

《【震惊小伙伴的单行代码—Python篇】的实践操作》 单行python代码4.png

这个就是打印最小或者最大的数字了,其实也没啥好震惊的感觉,代码如下:

print min([14, 35, -7, 46, 98])
print max([14, 35, -7, 46, 98])

图五:

《【震惊小伙伴的单行代码—Python篇】的实践操作》 单行python代码5.png

这一条就是:并行处理了,代码如下:

import multiprocessing
import math
print list(multiprocessing.Pool(processes=4).map(math.exp,range(1,11)))

图六:

《【震惊小伙伴的单行代码—Python篇】的实践操作》 单行python代码6.png

这一条就是:“Sieve of Eratosthenes”算法,Python里没有Sieve of Eratosthenes操作符,代码如下:

n = 50 # We want to find prime numbers between 2 and 50
print sorted(set(range(2,n+1)).difference(set((p * f) for p in range(2,int(n**0.5) + 2) for f in range(2,(n/p)+1))))

第一次呢,可以看到出错了,错误是unexpectde indent,啥原因呢,就是“错误的使用缩进量”,因为在python中缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。

嗯,和原文对比,还有一条没有做出来,是“获取XML web service数据并分析”,因为要吃饭了,加上做了2遍也是报错,所以先放着,有时间再弄。这里先把代码放出来吧,有做出来的也可以私信给我哦,毕竟我也是python小白啊,学习学习~

from xml.dom.minidom import parse, parseString
import urllib2
# 注意,我将它转换成XML格式化并打印出来
print parse(urllib2.urlopen("http://search.twitter.com/search.atom?&q=python")).toprettyxml(encoding="utf-8")

还蛮有趣的,可以试试!如果没有开发环境的话,推荐上实验楼利用他们的在线开发环境试试也好,记得前段时间的那个微信扫描,就直接给出哪些人拉黑了你么?我就是在实验楼上玩的。

    原文作者:小柑
    原文地址: https://www.jianshu.com/p/d694627b5d0a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞