摘要:你可以進行如下操作需要注意的是這個竅門只適用于。在中就不需要進行操作了,因為它已經默認進行了。這里有幾個例子可以供你參考譯文出處本文根據的所譯,整個譯文帶有我自己的理解與思想,如果譯得不好或有不對之處還請同行朋友指點。
枚舉
不要這么做:
i = 0 for item in iterable: print i, item i += 1
而是這樣:
for i, item in enumerate(iterable): print i, item
Enumerate可以接受第二個參數,例如:
>>> 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強制浮點數除法
如果我們除以一個整數,即使結果是一個浮點數,Python(2) 依舊會給我們一個整數。為了規避這個問題,我們需要這樣做:
result = 1.0/2
但是現在有一種別的方法可以解決這個問題,甚至在之前我都沒有意識到有這種方法存在。你可以進行如下操作:
from __future__ import division result = 1/2 # print(result) # 0.5
需要注意的是這個竅門只適用于Python 2。在Python 3 中就不需要進行import 操作了,因為它已經默認進行import了。
簡單的服務器你想快速簡單的分享目錄下的文件嗎?可以這樣做:
# Python2 python -m SimpleHTTPServer # Python 3 python3 -m http.server
這回啟動一個服務器
Python表達式求值我們都知道eval,但也許并不是所有人都知道literal_eval.可以這么做:
import ast my_list = ast.literal_eval(expr)
而不是這樣:
expr = "[1, 2, 3]" my_list = eval(expr)
我相信對于大多數人來說這種形式是第一次看見,但是實際上這個在Python中已經存在很長時間了。
分析腳本按下面的方式運行腳本,可以很簡單的對其進行分析:
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"]調試腳本
你可以使用pdb模塊在腳本中設置斷點來調試腳本,就像這樣:
import pdb pdb.set_trace()
你可以在腳本的任何地方加入pdb.set_trace(),該函數會在那個位置設置一個斷點。超級方便。你應該多閱讀pdb 函數的相關內容,因為在它里面還有很多鮮為人知的功能。
簡化if結構如果必須檢查一些值,可以用
if n in [1,4,5,6]:
而不是用復雜的if結構:
if n==1 or n==4 or n==5 or n==6:字符串/數列 逆序
下面的方式可以快速反轉一個列表:
>>> 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"優雅地打印
下面的方式可以用優雅的方式打印字典和列表:
from pprint import pprint pprint(my_dict)
這用于字典打印是非常高效的,如果你想從文件中快速優雅的打印出json,可以這樣做:
cat file.json | python -m json.tools三元運算
三元運算是if-else 語句的快捷操作,也被稱為條件運算。這里有幾個例子可以供你參考:
[on_true] if [expression] else [on_false] x, y = 50, 25 small = x if x < y else y譯文出處:http://www.ido321.com/1576.html
本文根據@Nicolas Bevacqua的《nifty-python-tricks》所譯,整個譯文帶有我自己的理解與思想,如果譯得不好或有不對之處還請同行朋友指點。如需轉載此譯文,需注明英文出處:https://freepythontips.wordpress.com/2015/04/19/nifty-python-tricks/。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/45384.html
摘要:提到老舊瀏覽器,我們腦海中往往復現的就是舊版的。但幸運的是,有一些技巧可以協助解決由老舊瀏覽器引起的的問題。放棄表單和老舊瀏覽器的最大問題是對的支持。結論如你所見,處理老舊瀏覽器所涉及的內容不止有表單。 系列文章說明 原文 所有的web開發者都會很快(或者很痛苦地)意識到Web是一個粗糙的環境,其中最糟糕的一點就是老舊的瀏覽器。提到老舊瀏覽器,我們腦海中往往復現的就是舊版的IE。但...
摘要:提到老舊瀏覽器,我們腦海中往往復現的就是舊版的。但幸運的是,有一些技巧可以協助解決由老舊瀏覽器引起的的問題。放棄表單和老舊瀏覽器的最大問題是對的支持。結論如你所見,處理老舊瀏覽器所涉及的內容不止有表單。 系列文章說明 原文 所有的web開發者都會很快(或者很痛苦地)意識到Web是一個粗糙的環境,其中最糟糕的一點就是老舊的瀏覽器。提到老舊瀏覽器,我們腦海中往往復現的就是舊版的IE。但...
閱讀 4369·2021-11-22 09:34
閱讀 2695·2021-11-12 10:36
閱讀 746·2021-08-18 10:23
閱讀 2640·2019-08-30 15:55
閱讀 3119·2019-08-30 15:53
閱讀 2086·2019-08-30 15:44
閱讀 1367·2019-08-29 15:37
閱讀 1411·2019-08-29 13:04