单行代码 之Python 3.5版

==========================================================================

震惊小伙伴的单行代码 Python篇

在网上看到有python2.7的单行代码(链接如上):

自学python3.x中,于是简单的想将2.x版翻译成3.x版。其中第7条实现还未成功。待了解xml后再尝试。

==========================================================================

1、让列表中的每个元素都乘以2

print(list(map(lambda x: x * 2, range(1,11))))

==========================================================================

2、求列表中的所有元素之和

print(sum(range(1,101)))

==========================================================================

3、判断一个字符串中是否存在某些词

wordlist = ["scala", "akka", "play framework", "sbt", "typesafe"]
tweet = "This is a example tweet talking about scala and sbt"
print(list(map(lambda x: x in tweet.split(),wordlist)))

==========================================================================

5、祝你生日快乐!

print(list(map(lambda x: "happy birthday to " + ("you" if x != 2 else "dear name"), range(4))))

==========================================================================

6. 过滤列表中的数值

from functools import reduce
reduce(lambda a,c: (a[0]+[c],a[1]) if c > 60 else (a[0],a[1]+[c]), [49, 58, 76, 82, 88, 90],([],[]))

==========================================================================

7. 获取XML web service数据并分析

待定

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

==========================================================================

8. 找到列表中最小或最大的一个数字

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

==========================================================================

9. 并行处理

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

==========================================================================

10. “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,int(n/p)+1)))))

 

posted @ 2017-03-10 18:11  Emily_zhu  阅读(263)  评论(0编辑  收藏  举报