標題1.1:拆分序列後賦值給多個變數
可迭代物件、拆分賦值
1.2:拆分任意長可迭代物件後賦值給多個變數
可迭代物件、拆分賦值、星號表示式
1.3:保留最近n個元素
collections.deque、限容雙端佇列、yield
1.4:查詢最大或最小的n個元素
heapq、堆
1.5:實現乙個優先順序佇列
heapq、堆、元組比較
1.6:字典中的鍵對映多個值
字典、collections.defaultdict
1.7:字典排序
collections. ordereddict、雙向鍊錶
1.8:字典運算
字典、最小值、最大值、排序、鍵集、值集、鍵值對換、lambda
1.9:查詢兩字典的相同點
set、集合交與差的運算、字典推導式
1.10:刪除序列相同元素並保持順序
set、yield、list、lambda
1.11:命名切片
魔數、切片、slice()、indices()
1.12:序列**現次數最多的元素
collections.counter、字典
1.13:通過某個關鍵字排序乙個字典列表
排序、sorted()、operator.itemgetter、lambda
1.14:排序不支援原生比較的物件
排序、sorted()、operator.attrgetter、lambda
1.15:通過某個欄位將記錄分組
分組、operator.itemgetter、litertools.groupby()
1.16:過濾序列元素
列表推導式、生成器表示式、itertools.compress()
1.17:從字典中提取子集
字典推導式
1.18:對映名稱到序列元素
下標另名為、collections.namedtuple()
1.19:轉換並同時計算資料
聚集函式、sum()、max()、min()、列表推導式、生成器表示式
1.20:合併多個字典或對映
邏輯上的字典、collections.chainmap
標題2.1:使用多個界定符分割字串
re、split()、正則式、非捕獲分組、生成器表示式、[:]、[::]
2.2:字串開頭或結尾匹配
str.startswith()、str.endswith()、列表推導式
2.3:用shell萬用字元匹配字串
fnmatch.fnmatch()、fnmatch.fnmatchcase()、列表推導式
2.4:字串匹配和搜尋
re、正則式、compile()、match()、findall()、group()
2.5: 字串搜尋和替換
re、正則式、compile()、sub()、str.repalce()
2.6:字串忽略大小寫的搜尋替換
re、正則式、re.ignorecase
2.7:最短匹配模式
re、正則式、非貪婪模式
2.8:多行匹配模式
re、正則式、非捕獲組、re.dotall
2.9:將unicode文字標準化
unicodedata.normalize()
2.10:在正則式中使用 unicode
re、正則式、unicode
2.11:刪除字串中不需要的字元
str.strip()、str.lstrip()、str.rstrip()
2.12:審查清理文字字串
str.translate()、str.replace()
2.13:字串對齊
str.ljust() 、str.rjust()、str.center()、format()、%
2.14:合併拼接字串
+、str.join()、format()、yield
2.15:字串中插入變數
str.format()、str.format_map()
2.16:以指定列寬格式化字串
textwrap.fill()
2.17:在字串中處理html和xml
html.escape()、html.parser、xml.sax.saxutils
2.18:字串令牌解析
re、正則式、編譯原理
2.19:實現乙個簡單的遞迴下降分析器
re、正則式、編譯原理
2.20:位元組字串上的字串操作
位元組字串
標題3.1:數字的四捨五入
round()、format()
3.2:執行精確的浮點數運算
decimal
3.3:數字的格式化輸出
format()
3.4:二、八、十六進製制整數
bin()、oct()、hex()、format()
3.5:位元組到大整數的打包與解包
int.from_bytes()、int.to_bytes()
3.6:複數的數**算
complex()、cmath、numpy
3.7:無窮大與 nan
float()、man.isinf()、math.isnan()
3.8:分數運算
fraction
3.9:大型陣列運算
numpy
3.10:矩陣與線性代數運算
numpy
3.11:隨機選擇
random
3.12:基本的日期與時間轉換
datetime、timedelta
3.13:計算最後乙個周五的日期
datetime、timedelta
3.14:計算當前月份的日期範圍
datetime、timedelta、date、calendar
3.15:字串轉換為日期
datetime
3.16:結合時區的日期操作
datetime、pytz
標題4.1:手動遍歷迭代器
next()、iter()
4.2:**迭代
__iter__()
4.3:使用生成器建立新的迭代模式
frange()、range()、next()
4.4:實現迭代器協議
yield、yield from
4.5:反向迭代
reversed()
4.6:帶有外部狀態的生成器函式
__iter__()
4.7:迭代器切片
itertools.islice()
4.8:跳過可迭代物件的開始部分
itertools.dropwhile()、islice()
4.9:排列組合的迭代
itertools.permutations()排列、itertools.combinations()組合
4.10:序列上索引值迭代
enumerate()列舉
4.11:同時迭代多個序列
zip()
4.12:不同集合上元素的迭代
itertools.chain()
4.13:建立資料處理管道
yield、yield from、itertools.chain()
4.14:展開巢狀的序列
isinstance()、yield from
4.15:順序迭代合併後的排序迭代物件
heapq.merge()
4.16:迭代器代替 while 無限迴圈
iter()、lambda
標題5.1:讀寫文字資料
open(), with…as…, encoding=
5.2:列印輸出至檔案中
print(』』, file=f)
5.3:使用其他分隔符或行終止符列印
print(』』, 『』, 『』, sep=』』, end=』』), str.join((』』,))
5.4:讀寫位元組資料
open(), rb, wb
5.5:檔案不存在才能寫入
open(), xt, xb, os.path.exists()
5.6:字串的 i/o 操作
io.stringio(), io.bytesio()
5.7:讀寫壓縮檔案
gzip, bz
5.8:固定大小記錄的檔案迭代
iter(), functools.partial()
5.9:讀取二進位制資料到可變緩衝區中
bytearray(), file.readinto
5.10:記憶體對映的二進位制檔案
mmap
5.11:檔案路徑名的操作
os.path
5.12:測試檔案是否存在
os.path
5.13:讀寫壓縮檔案
os.listdir(), glob
5.14:忽略檔名編碼
sys.getfilesystemencoding()
5.15:列印不合法的檔名
unicodeencodeerror
5.16:增加或改變已開啟檔案的編碼
sys.stdout.buffer.write(b』』)
5.18:將檔案描述符包裝成檔案物件
os.open(), open()
5.19:建立臨時檔案和資料夾
tempfile.temporaryfile, tempfile.namedtemporaryfile, tempfile.temporarydirectory()
5.20:與串列埠的資料通訊
serial.serial()
5.21:序列化 python 物件
pickle.dump(), pickle.load()
待續
Python Cookbook學習記錄
4.迭代器和生成器 4.9迭代所有可能的組合和排列 import itertools items a b c permutations 接受乙個元素集合,將其中的元素重排列為所有可能的情況,並以元組形式返回 for p in itertools.permutations items print p ...
python cookbook學習筆記十一
csv檔案讀取 csv檔案格式如下 分別有2行三列。訪問 如下 f open r e py prj test.csv rb f csv csv.reader f forf inf csv printf 在這裡f是乙個元組,為了訪問某個字段,需要用索引來訪問對應的值,如f 0 訪問的是first,f ...
每天學點Python Cookbook(四)
任務 尋找上乙個星期五的日期。解決方案 通過python標準庫的datetime模組,可以快速完成此任務。import datetime,calendar def find last friday last friday datetime.date.today oneday datetime.tim...