Python 9「切片和迭代「

2021-08-02 07:39:46 字數 2363 閱讀 4932

我們在對list或者tuple的元素進行取值時,一般的方法是這樣的:

>>>l =[1,2,3]

>>>l[0]

>>>l[1]

>>>l[2]

或者使用迴圈來獲取

>>>l = 

>>>n = 2

>>>for i in range(n)

l

python提供了更加簡便的方法能讓我們獲取這些值,那就是切片(slice)

>>>list = [1,2,3,4,5]

>>>#取list集合中的第0個到第3個元素,如果是從0開始取,0可以省略

>>>list[0:3]

[1, 2, 3]

也可以倒過來取

>>>list = [1,2,3,4,5]

>>>#記住最後乙個元素的索引是-1

>>> list[-1:]

[5]>>> list[-5:]

[1, 2, 3, 4, 5]

>>>

也可以按每x個取乙個

>>> temp = list(range(10))

>>> temp[:10:2]

[0, 2, 4, 6, 8]

字串也可以看作是一種list,同樣可以通過切片的方法來取字串的字元

>>> str  = 'abcdefg'

>>> str[0:3]

'abc'

一般來說,我們用for...in遍歷集合的過程,就稱為迭代(iteration)

迭代list和tuple

>>> l = [1,2,3,4,5]

>>> for i in l:

... print(i)

...123

45>>> l = (1,2,3,4,5)

>>> for i in l:

... print(i)

...123

45

迭代dict,可以通過for...in...迭代dictkey

>>> dict = 

>>> for key in dict:

... print(key)

...

name

agehight

迭代dictvalue,需要使用dict.values()方法

>>> for value in dict.values():

... print(value)

...

lily

21161

也可以同時迭代keyvalue,需要使用dict.items()方法

>>> for key,value in dict.items():

... print(key,value)

...

name lily

age 21

hight 161

迭代字串

>>> str = 'abcdefg'

>>> for ch in str:

... print(ch)

... ab

cdef

g

迭代list集合中的索引-元素對,可以使用enumerate將list變成索引-元素對

>>> for x,y in enumerate([1,2,3,4,5]):

... print(x,':',y)

...0 : 1

1 : 2

2 : 3

3 : 4

4 : 5

△判斷乙個物件是否可迭代,可以通過collection模組的lterable型別來判斷:

>>> 

from collections import iterable

>>> isinstance('abc',iterable)

true

>>> isinstance('123',iterable)

true

>>> isinstance(123,iterable)

false

>>>

Python之切片和迭代

l a b c d l 0 3 表示取前三個元素,當從索引0開始取的時候,0可以省略,寫作為l 3 l 表示從頭到尾。l 1 10 2 表示從索引號為1的開始到索引號為10的結束,不包括索引號為10的元素,每2個取出乙個,即隔乙個取乙個。tuple切片與list相同。range 可以建立乙個數列 r...

python 切片,迭代

切片 slice 操作符 其格式為 列表 元組 名 舉個例子 我們想提取前三科成績 score 數學 90 語文 89 英語 87 物理 77 化學 90 print score 0 3 結果 數學 90 語文 89 英語 87 像上面的例子score 0 3 表示的是從索引0開始取,直到索引3為止...

學python(9) 快速排序

第一種 快速排序 defkp ls 判斷要操作的列表長度是否大於1 if len ls 1 如果列表只有乙個數,則直接返回列表 return ls 定義兩個列表儲存相對較大的數和相對較小的數 maxa mina 這次選擇用第乙個數作為分割標準 遍歷除了第乙個資料的列表 for i in ls 1 判...