Python代碼技巧,你值得擁有!
如何去掉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
聲明:文章著作權歸作者所有,如有侵權,請聯繫小編刪除
※Python爬蟲從入門到出門(三)
※Python列表方法詳細
TAG:python |