前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >震惊小伙伴的Python单行代码

震惊小伙伴的Python单行代码

作者头像
CDA数据分析师
发布2018-02-05 13:20:57
7410
发布2018-02-05 13:20:57
举报
文章被收录于专栏:CDA数据分析师CDA数据分析师

几年前,函数式编程的复兴正值巅峰,一篇介绍 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 # 求 2-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))))

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档