python資料結構 切片,序列函式

2021-09-26 16:28:19 字數 2696 閱讀 8771

《利用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 切片操作符 獲取序列的乙個切片,即一部分序...