国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰县| 沂源县| 思茅市| 四平市| 招远市| 汉沽区| 兴城市| 天峻县| 紫云| 凤城市| 温宿县| 新源县| 汤阴县| 沅陵县| 甘谷县| 岐山县| 论坛| 青浦区| 闻喜县| 手游| 靖西县| 平顶山市| 师宗县| 炎陵县| 阜宁县| 宁夏| 沽源县| 荥经县| 禹城市| 康保县| 平湖市| 惠州市| 高淳县| 长丰县| 卢氏县| 武平县| 新沂市| 得荣县| 汪清县| 双桥区| 湖口县|