在 Python 中對序列進行切片非常常見,切片功能也非常好用。比如
# 取一個序列中的偶數項
seq = [1, 2, 3, 4, 5, 6]
seq[1::2]
>>> [2, 4, 6]
# 取第3到5個元素
seq = [1, 2, 3, 4, 5, 6]
seq[2:5]
>>> [3, 4, 5]
現在假如你有一個檔案,檔案中每行的特定位置記錄這一些資料,比如
# 數量 價格
record = '....................100 .......513.25 ..........'
你現在想透過切片來提取資料獲得每行的總價,但這時候的程式碼會是這樣的
cost = int(record[20:23]) * float(record[31:37])
這樣硬編碼可能會讓你在兩週後再來看程式碼時不知道 record[20:23]
獲取的是什麼。這時可以藉助 Python 內建的 slice
函式來獲取一個切片物件,這個切片物件可以完成切片同時還具有名字,不用擔心程式碼難以閱讀。
SHARES = slice(20, 23)
PRICE = slice(31, 37)
cost = int(record[SHARES]) * float(record[PRICE])
slice
應該算是用得很少的內建函式了,但在處理某些文字和資料的時候還是很有用的。
例子來自 《Python Cookbook》。
本作品採用《CC 協議》,轉載必須註明作者和本文連結