如何去掉list中重覆元素
-
推薦方式
或者
前一種方式不會保留list的元素順序,後一種方式會保留list的元素順序。
如何讀取dict中的值
-
不推薦方式
-
推薦方式
前一種方式讀取一個不存在的key時,會導致KeyError,例如print url_dict[‘baidu’],因為字典中不存在baidu,所以會導致KeyError。後一種方式使用字典的get方法,如果key不存在,不會產生KeyError,如果給了預設值,會傳回預設值,否則傳回None。
如何排序字典
-
推薦方式
第一種方式是按字典的value升序排序,第二種方式是按字典的key升序排序,第三種方式是按字典的value降序排序,和第一種方式相反,因為指定了引數reverse為True。sorted函式功能挺強大,不止可以排序字典,任何iterable物件都可以排序。
如何列印更易讀的類
-
不推薦方式
-
推薦方式
前一種方式列印的類不易讀,不能獲取更多的資訊。透過類的repr方法可以將類列印得更易讀。或者不定義repr方法,直接使用下麵方式列印:
print p.__dict__# {'y': 4, 'x': 3}
使用dict方法,將類以字典形式打印出來,也比較易讀。
如何將類列印成json字串
-
推薦方式
透過json模組的dumps方法,可以輕易將類列印成json字串。
如何排序類串列
-
推薦方式
這裡排序的方法和字典排序類似,第一種是按user的key升序排序,第二種是按user的name升序排序。其實還支援名字相同,再按key進行排序,如下:
如何在命令列檢視python檔案
-
推薦方式
第一個命令pydoc sys.exit檢視sys模組的exit函式檔案資訊,第二個命令pydoc sorted查看了內建函式sorted的檔案資訊。
如何將python程式碼打包成獨立的二進位制檔案
-
推薦方式
需要編譯的python程式碼如下:
#!/usr/bin/env python# -*- coding: utf-8 -*-print 'hello, world!'
將python程式碼打包成獨立的二進位制檔案步驟:
我解釋下上面命令列,首先使用python直接執行需要編譯成獨立二進位制檔案的hello_world.py,程式正常列印hello, world!,然後使用pip安裝pyinstaller,透過pyinstaller將hello_world.py打包成獨立的二進位制檔案,然後進入當前目錄下的dist目錄,執行打包成功的二進位制檔案hello_world,程式正常列印hello, world!。除了pyinstaller,還有其他工具可以實現類似功能
如何自動格式化python程式碼
-
推薦方式
格式化前的demo.py程式碼:
安裝autopep8,並使用autopep8格式化demo.py程式碼:
root@master:demo$ pip install autopep8root@master:demo$ autopep8 --in-place --aggressive --aggressive demo.py
格式化後的demo.py程式碼:
可以看到,經過autopep8格式化後的python程式碼更易讀,也符合python的程式碼風格,這裡的示例程式碼使用autopep8官方例子。
正確的函式傳回
-
不推薦方式
-
推薦方式
前一種方式中,如果輸入的引數b為0,函式會預設傳回None,這是一個不太好的程式設計習慣。例如,當把函式的傳回值作為if條件判斷時,0.0和None都是False,這樣容易導致bug。後面這種方式,將除數是0當成異常丟擲,讓呼叫者處理異常,是比較合理的做法。
正確使用函式預設引數
-
不推薦方式
-
推薦方式
前一種方式會導致函式預設值改變,多次呼叫相互影響。正確方式是將函式預設值設定成None,在函式內部初始化預設引數。這裡只是針對傳遞取用型別的引數,如果是數字、字串等型別就不存在該問題。
利用元組傳遞多個函式引數
-
推薦方式
作者:songleo
源自:https://www.jianshu.com/u/b2075cf393f8
宣告:文章著作權歸作者所有,如有侵權,請聯絡小編刪除