国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python中比較pythonic的地方

2019-11-06 08:10:50
字體:
來源:轉載
供稿:網友
變量交換>>> a, b = b, a循環遍歷區間元素>>>for i in range(10):... PRint (i)

返回的是生成器對象,生成器比列表更加節省內存

帶索引位置的循環遍歷>>>colors = ['red', 'green', 'blue', 'yellow']>>>for i, color in enumerate(colors):... print (i, 'mapping', color)字符串連接>>>colors = ['red', 'green', 'blue', 'yellow']>>>print( ', ', join( colors ) )

join 是一種更加高效的字符串連接方式,使用 + 操作時,每執行一次+操作就會導致在內存中生成一個新的字符串對象,遍歷幾次有幾個字符串生成,造成無謂的內存浪費。而用 join 方法整個過程只會產生一個字符串對象。

打開/關閉文件 >>>with open('data.txt') as f: ... data = f.read()列表推導式 result = []for i in range( 10 ): s = i * 2 result.append( s )

應該寫成:

[ i * 2 for i in range( 10 ) ]

裝飾器

裝飾器可以把與業務邏輯無關的代碼抽離出來,讓代碼保持干凈清爽,而且裝飾器還能被多個地方重復利用。比如一個爬蟲網頁的函數,如果該 URL 曾經被爬過就直接從緩存中獲取,否則爬下來之后加入到緩存,防止后續重復爬取。

def web_lookup(url, saved={}): if url in saved: return saved[url] page = urllib.urlopen(url).read() saved[url] = page return page

pythonic

import urllib.requestdef cache(func): saved = {} def wrapper(url): if url in saved: return saved[url] else: page = func(url) saved[url] = page return page return wrapper@cachedef web_lookup(url): return urllib.urlopen(url).read()列表的操作

列表對象(list)是一個查詢效率高于更新操作的數據結構,比如刪除一個元素和插入一個元素時執行效率就非常低,因為還要對剩下的元素進行移動

names = ['raymond', 'rachel', 'matthew', 'roger', 'betty', 'melissa', 'judith', 'charlie']names.pop(0)names.insert(0, 'mark')

pythonic

from collections import dequenames = deque(['raymond', 'rachel', 'matthew', 'roger', 'betty', 'melissa', 'judith', 'charlie'])names.popleft()names.appendleft('mark')

deque 是一個雙向隊列的數據結構,刪除元素和插入元素會很快

序列解包p = 'vttalk', 'female', 30, 'python@QQ.com'name = p[0]gender = p[1]age = p[2]email = p[3]

pythonic

name, gender, age, email = p

參考資料:知乎 鏈接:https://zhuanlan.zhihu.com/p/25518608


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林周县| 枣强县| 报价| 囊谦县| 阳曲县| 沧源| 彭泽县| 安顺市| 兰西县| 嘉祥县| 中牟县| 兴文县| 分宜县| 湘西| 鄂伦春自治旗| 沧州市| 南木林县| 黑水县| 合水县| 田东县| 天气| 五常市| 梓潼县| 什邡市| 文昌市| 通城县| 东丽区| 女性| 白朗县| 中超| 德保县| 莲花县| 大连市| 应城市| 东乌珠穆沁旗| 灵山县| 云梦县| 奉新县| 井研县| 海丰县| 南召县|