《利用python進行資料分析》chapter3用切邊可以選取大多數序列型別的一部分,切片的基本形式是在方括號中使用
start:stop
:
in [73]: seq = [7, 2, 3, 7, 5, 6, 0, 1]
in [74]: seq[1:5]
out[74]: [2, 3, 7, 5]
切片也可以被序列賦值:
in [75]: seq[3:4] = [6, 3]
in [76]: seq
out[76]: [7, 2, 3, 6, 3, 5, 6, 0, 1]
切片的起始元素是包括的,不包含結束元素。因此,結果中包含的元素個數是stop - start
。
負數表明從後向前切片:
in [79]: seq[-4:]
out[79]: [5, 6, 0, 1]
in [80]: seq[-6:-2]
out[80]: [6, 3, 5, 6]
在第二個冒號後面使用step
,可以隔乙個取乙個元素:(與matlab有所不同)
in [81]: seq[::2]
out[81]: [7, 3, 3, 6, 1]
乙個聰明的方法是使用-1
,它可以將列表或元組顛倒過來:
in [82]: seq[::-1]
out[82]: [1, 0, 6, 5, 3, 6, 3, 2, 7]
迭代乙個序列時,你可能想跟蹤當前項的序號。手動的方法可能是下面這樣:
i = 0
for value in collection:
# do something with value
i += 1
因為這麼做很常見,python內建了乙個enumerate
函式,可以返回(i, value)
元組序列:
for i, value in enumerate(collection):
# do something with value
當你索引資料時,使用enumerate
的乙個好方法是計算序列(唯一的)dict
對映到位置的值:
in [83]: some_list = ['foo', 'bar', 'baz']
in [85]: for i, v in enumerate(some_list):
out[86]:
sorted
函式可以從任意序列的元素返回乙個新的排好序的列表:
in [87]: sorted([7, 1, 2, 6, 0, 3, 2])
out[87]: [0, 1, 2, 2, 3, 6, 7]
in [88]: sorted('horse race')
out[88]: [' ', 'a', 'c', 'e', 'e', 'h', 'o', 'r', 'r', 's']
zip
可以將多個列表、元組或其它序列成對組合成乙個元組列表:
in [89]: seq1 = ['foo', 'bar', 'baz']
in [90]: seq2 = ['one', 'two', 'three']
in [91]: zipped = zip(seq1, seq2)
in [92]: list(zipped)
out[92]: [('foo', 'one'), ('bar', 'two'), ('baz', 'three')]
zip
可以處理任意多的序列,元素的個數取決於最短的序列:
in [93]: seq3 = [false, true]
in [94]: list(zip(seq1, seq2, seq3))
out[94]: [('foo', 'one', false), ('bar', 'two', true)]
zip
的常見用法之一是同時迭代多個序列,可能結合enumerate
使用:
in [95]: for i, (a, b) in enumerate(zip(seq1, seq2)):
....: print(': , '.format(i, a, b))
....:
0: foo, one
1: bar, two
2: baz, three
reversed
可以從後向前迭代乙個序列:要記住reversed
是乙個生成器(後面詳細介紹),只有實體化(即列表或for迴圈)之後才能建立翻轉的序列。
in [100]: list(reversed(range(10)))
out[100]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
python基礎資料結構 序列
python基礎資料結構 序列 在python中,常見的基本序列有列表 元組 字串。以下依次對這三種常見的序列進行方法概述,本文章注重知識圖譜,具體的使用方法詢問 度娘 棧 先進後出 lifo 假設有乙個空列表,命名為 p p for i in range 1 10 p 為 1,2,3,4,5,6,...
Python的資料結構 序列
shoppinglist banana cat dog duck indexing and subscription operation print the first item is shoppinglist 0 print the second item is shoppinglist 1 pr...
Python之資料結構 序列
一 序列 1 列表 元組和字串都是序列 二 序列的兩個特點 索引操作符和切片操作符 1 索引操作符 從序列中抓取乙個特定專案 下標操作 使用索引獲取序列中的單個專案 eg shoplist 0 序列的第乙個專案 shoplist 1 序列的最後乙個專案 2 切片操作符 獲取序列的乙個切片,即一部分序...