本文邀請pany來回答,以下是他基于工作經驗羅列出來的關于python的一些實用知識點和小技巧,希望對你有所幫助~
文章不旨在概念的介紹和深挖,或者酷炫的第三方庫介紹。更多是站在實用性角度簡明快速羅列自認為頗為有用的知識點或者技巧。為提高代碼的效率或可讀性,便利性等添磚加瓦。經驗之談,歡迎交流和拍磚。
字符串
字符拼接,join。
這里需要強調下,任何
除了我們常用的%s進行格式化外,其實還可以按照關鍵字格式化,對于比較多變量時的情況,有利于提高代碼的可讀性。
當然format可以類似地
split(rsplit)其實時有第二個參數的,表示按順序分隔幾次,類似‘指定數目的非貪婪分隔’
標準庫的textwrap.dedent可以刪除源文本中各行行首的共同縮進部分
標準庫textwrap還有其他一些方法處理文本格式,例如fill設定行寬度和首行縮減,indent添加行前綴等等。
字典
給字典設置(增加)新的鍵,存在就不設置(獲取當前key對應的值),不存在就設置并返回當前key對應的值
update,更新字典
fromkeys(seq[,value])
創建一個新字典,序列seq的元素為鍵,value為字典所有鍵對應的初始值(不指定為None)。
類似的功能其實也可以通過defaultdict來實現,后面會舉例。
標準庫collections的defaultdict和OrderedDict
defaultdict類接受一個類型作為參數,當所訪問的鍵不存在的時候,可以實例化一個指定類型空值作為默認值
defaultdict類還使用任何不帶參的函數,該函數的返回值作為默認值,這樣可以實現多層key默認值的指定。
所以defaultdict可以覆蓋setdefault的使用場景,人傾向使用defaultdict,更加方便簡潔
python的字典是無序的,OrderedDict可以保留key的順序信息
OrderedDict的Key會按照插入的順序排列
json化后可以保留順序
列表
但是多層生成式不推薦過度使用,可能會導致可讀性更差。列表的索引有不少靈活的用法:
*運算符可生成元素重復的序列
在for循環中一同拿到索引和元素
其實enumerate函數的可使用范圍也包括所有的可迭代對象
例如文件句柄
除了使用index()方法返回查找元素的索引外。對于復雜點的元素可以使用生成器及其next方法
Set
實際上{1,2,3}相當于set([1,2,3])
set支持leninjoin
刪除元素:remove和discard
二者的區別在于,如果被指定刪除的
推薦使用運算符而不是set方法函數,運算符看起來更簡潔,有更好的可讀性
如果讀完此文對你有幫助,請點個贊或者轉發讓更多人知道哦~