首頁(yè)技術(shù)文章正文

10條震驚小伙伴們的Python單行代碼

更新時(shí)間:2017-12-26 來(lái)源:黑馬程序員 瀏覽量:

Python是一門(mén)擁有出色優(yōu)秀的編程特征的函數(shù)式編程語(yǔ)言,編程高手們利用這些技巧提高編程速度,改進(jìn)軟件質(zhì)量。而編程初學(xué)者也能從這些簡(jiǎn)潔的語(yǔ)法中學(xué)到這門(mén)編程語(yǔ)言的真諦。下面給大家介紹10個(gè)Python的單行函數(shù)式代碼,希望大家有所收獲:

1、讓列表中的每個(gè)元素都乘以2

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

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

print sum(range(1,1001))

3、判斷一個(gè)字符串中是否存在某些詞

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、《祝你生日快樂(lè)!》歌

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

6. 過(guò)濾列表中的數(shù)值

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數(shù)據(jù)并分析

from xml.dom.minidom import parse, parseString

import urllib2

# 注意,我將它轉(zhuǎn)換成XML格式化并打印出來(lái)

print parse(urllib2.urlopen("http://search.twitter.com/search.atom?&q=python")).toprettyxml(encoding="utf-8")

8. 找到列表中最小或最大的一個(gè)數(shù)字

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

埃拉托斯特尼篩法,是一種由希臘數(shù)學(xué)家埃拉托斯特尼所提出的一種簡(jiǎn)單檢定素?cái)?shù)的算法。要得到自然數(shù)n以內(nèi)的全部素?cái)?shù),必須把不大于根號(hào)n的所有素?cái)?shù)的倍數(shù)剔除,剩下的就是素?cái)?shù)。

Python里沒(méi)有Sieve of Eratosthenes操作符,但這對(duì)于Python來(lái)說(shuō)并不是難事。

n = 50 #表示統(tǒng)計(jì)出50以內(nèi)的所有素?cái)?shù)。

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


本文版權(quán)歸黑馬程序員人工智能+Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!


作者:黑馬程序員人工智能+Python培訓(xùn)學(xué)院


首發(fā):http://python.itheima.com/


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!