摘要:你可以進(jìn)行如下操作需要注意的是這個竅門只適用于。在中就不需要進(jìn)行操作了,因為它已經(jīng)默認(rèn)進(jìn)行了。這里有幾個例子可以供你參考譯文出處本文根據(jù)的所譯,整個譯文帶有我自己的理解與思想,如果譯得不好或有不對之處還請同行朋友指點。
枚舉
不要這么做:
i = 0 for item in iterable: print i, item i += 1
而是這樣:
for i, item in enumerate(iterable): print i, item
Enumerate可以接受第二個參數(shù),例如:
>>> list(enumerate("abc")) [(0, "a"), (1, "b"), (2, "c")] >>> list(enumerate("abc", 1)) [(1, "a"), (2, "b"), (3, "c")]字典/集合 解析
你可能知道列表解析,但不知道字典/集合解析。字典/集合解析簡單而且高效,例如:
my_dict = {i: i * i for i in xrange(100)} my_set = {i * 15 for i in xrange(100)} # There is only a difference of ":" in both強(qiáng)制浮點數(shù)除法
如果我們除以一個整數(shù),即使結(jié)果是一個浮點數(shù),Python(2) 依舊會給我們一個整數(shù)。為了規(guī)避這個問題,我們需要這樣做:
result = 1.0/2
但是現(xiàn)在有一種別的方法可以解決這個問題,甚至在之前我都沒有意識到有這種方法存在。你可以進(jìn)行如下操作:
from __future__ import division result = 1/2 # print(result) # 0.5
需要注意的是這個竅門只適用于Python 2。在Python 3 中就不需要進(jìn)行import 操作了,因為它已經(jīng)默認(rèn)進(jìn)行import了。
簡單的服務(wù)器你想快速簡單的分享目錄下的文件嗎?可以這樣做:
# Python2 python -m SimpleHTTPServer # Python 3 python3 -m http.server
這回啟動一個服務(wù)器
Python表達(dá)式求值我們都知道eval,但也許并不是所有人都知道literal_eval.可以這么做:
import ast my_list = ast.literal_eval(expr)
而不是這樣:
expr = "[1, 2, 3]" my_list = eval(expr)
我相信對于大多數(shù)人來說這種形式是第一次看見,但是實際上這個在Python中已經(jīng)存在很長時間了。
分析腳本按下面的方式運(yùn)行腳本,可以很簡單的對其進(jìn)行分析:
python -m cProfile my_script.py對象自檢
在Python中,可以通過dir()來檢查對象,例如:
>>> foo = [1, 2, 3, 4] >>> dir(foo) ["__add__", "__class__", "__contains__", "__delattr__", "__delitem__", "__delslice__", ... , "extend", "index", "insert", "pop", "remove", "reverse", "sort"]調(diào)試腳本
你可以使用pdb模塊在腳本中設(shè)置斷點來調(diào)試腳本,就像這樣:
import pdb pdb.set_trace()
你可以在腳本的任何地方加入pdb.set_trace(),該函數(shù)會在那個位置設(shè)置一個斷點。超級方便。你應(yīng)該多閱讀pdb 函數(shù)的相關(guān)內(nèi)容,因為在它里面還有很多鮮為人知的功能。
簡化if結(jié)構(gòu)如果必須檢查一些值,可以用
if n in [1,4,5,6]:
而不是用復(fù)雜的if結(jié)構(gòu):
if n==1 or n==4 or n==5 or n==6:字符串/數(shù)列 逆序
下面的方式可以快速反轉(zhuǎn)一個列表:
>>> a = [1,2,3,4] >>> a[::-1] [4, 3, 2, 1] # This creates a new reversed list. # If you want to reverse a list in place you can do: a.reverse()
這種方式同樣適用于字符串:
>>> foo = "yasoob" >>> foo[::-1] "boosay"優(yōu)雅地打印
下面的方式可以用優(yōu)雅的方式打印字典和列表:
from pprint import pprint pprint(my_dict)
這用于字典打印是非常高效的,如果你想從文件中快速優(yōu)雅的打印出json,可以這樣做:
cat file.json | python -m json.tools三元運(yùn)算
三元運(yùn)算是if-else 語句的快捷操作,也被稱為條件運(yùn)算。這里有幾個例子可以供你參考:
[on_true] if [expression] else [on_false] x, y = 50, 25 small = x if x < y else y譯文出處:http://www.ido321.com/1576.html
本文根據(jù)@Nicolas Bevacqua的《nifty-python-tricks》所譯,整個譯文帶有我自己的理解與思想,如果譯得不好或有不對之處還請同行朋友指點。如需轉(zhuǎn)載此譯文,需注明英文出處:https://freepythontips.wordpress.com/2015/04/19/nifty-python-tricks/。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/45384.html
摘要:提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的。但幸運(yùn)的是,有一些技巧可以協(xié)助解決由老舊瀏覽器引起的的問題。放棄表單和老舊瀏覽器的最大問題是對的支持。結(jié)論如你所見,處理老舊瀏覽器所涉及的內(nèi)容不止有表單。 系列文章說明 原文 所有的web開發(fā)者都會很快(或者很痛苦地)意識到Web是一個粗糙的環(huán)境,其中最糟糕的一點就是老舊的瀏覽器。提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的IE。但...
摘要:提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的。但幸運(yùn)的是,有一些技巧可以協(xié)助解決由老舊瀏覽器引起的的問題。放棄表單和老舊瀏覽器的最大問題是對的支持。結(jié)論如你所見,處理老舊瀏覽器所涉及的內(nèi)容不止有表單。 系列文章說明 原文 所有的web開發(fā)者都會很快(或者很痛苦地)意識到Web是一個粗糙的環(huán)境,其中最糟糕的一點就是老舊的瀏覽器。提到老舊瀏覽器,我們腦海中往往復(fù)現(xiàn)的就是舊版的IE。但...
閱讀 4383·2021-11-22 09:34
閱讀 2700·2021-11-12 10:36
閱讀 751·2021-08-18 10:23
閱讀 2648·2019-08-30 15:55
閱讀 3126·2019-08-30 15:53
閱讀 2090·2019-08-30 15:44
閱讀 1369·2019-08-29 15:37
閱讀 1416·2019-08-29 13:04