分享

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

 小矶 2016-07-15


来源:外刊IT评论  

链接:http://www./10-python-one-liners-to-impress-your-friends/


几年前,函数式编程的复兴正值巅峰,一篇介绍 Scala 中 10 个单行函数式代码的博文在网上走红。很快地,一系列使用其他语言实现这些单行代码的文章也随之出现,比如 Haskell, Ruby, Groovy, Clojure, Python, C#, F#, CoffeeScript。


每篇文章都令人印象深刻的揭示了这些语言中一些出色优秀的编程特征。编程高手们利用这些技巧提高编程速度、改进软件质量,编程初学者能从这些简洁的预防中学到各种编程语言的真谛。本《震惊小伙伴的单行代码系列》将逐一介绍这些各种编程语言单行代码文章,供大家学习参考。


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


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


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


print sum(range(1,1001))


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


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)


4、读取文件


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


5、祝你生日快乐!


print map(lambda x: 'Happy Birthday to ' + ('you' if x != 2 else 'dear Name'),range(4))


6. 过滤列表中的数值


print reduce(lambda(a,b),c: (a+[c],b) if c > 60 else (a,b + [c]), [49, 58, 76, 82, 88, 90],([],[]))


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


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


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”算法


Python里没有Sieve of Eratosthenes操作符,但这对于Python来说并不是难事。


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


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多