python 切片,迭代

2021-10-18 19:25:35 字數 4321 閱讀 9805

切片:(slice)操作符

其格式為:列表(元組)名+[ : ]

舉個例子:我們想提取前三科成績

score=

['數學=90'

,'語文=89'

,'英語=87'

,'物理=77'

,'化學=90',]

print

(score[0:

3])

結果:

['數學=90', '語文=89', '英語=87']
像上面的例子score[0:3]表示的是從索引0開始取,直到索引3為止,但不包括索引3。即索引012。並且若是從0開始索索引0可以省略。

python亦可以倒數切片

舉個例子:我們想提取後三科成績

score=

['數學=90'

,'語文=89'

,'英語=87'

,'物理=77'

,'化學=90',]

print

(score[-3

:])

結果:

['英語=87', '物理=77', '化學=90']
要記住倒數第乙個元素是:-1

像這樣[:]

score=

['數學=90'

,'語文=89'

,'英語=87'

,'物理=77'

,'化學=90',]

print

(score[:]

)

輸出的就是:

['數學=90', '語文=89', '英語=87', '物理=77', '化學=90']
像這樣[:4:2]: 就意味著前四個數 每兩個取乙個

score=

['數學=90'

,'語文=89'

,'英語=87'

,'物理=77'

,'化學=90',]

print

(score[:4

:2])

輸出的就是:

['數學=90', '英語=87']
同理呢:[:10:5]就是前十個數,每五個取乙個。

迭代如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代(iteration)。

在python中,迭代是通過 for … in 來完成的。

python 的 for迴圈不僅可以用在list或tuple上,還可以作用在其他任何可迭代物件上。

迭代操作就是對於乙個集合,無論該集合是有序還是無序,我們用 for 迴圈總是可以依次取出集合的每乙個元素。

如何判斷乙個物件可否迭代

通過collections模組的iterable型別判斷:

>>

>

from collections import iterable

>>

>

isinstance

('abc'

, iterable)

# str是否可迭代

true

>>

>

isinstance([

1,2,

3], iterable)

# list是否可迭代

true

>>

>

isinstance

(123

, iterable)

# 整數是否可迭代

false

舉個簡單的例子:我們利用迭代輸出1到9。

number=

range(1

,10)for x in

range(1

,10):

print

(x)

結果:

123

4567

89

enumerate函式

我們可以利用enumerate()函式,在for迴圈中同時繫結索引index和元素name

n=

['zcy'

,'cys'

,'poj'

,'yzh'

,'hjw'

]for name in

enumerate

(n):

print

(name)

輸出結果為:

(0, 'zcy')

(1, 'cys')

(2, 'poj')

(3, 'yzh')

(4, 'hjw')

enumerate()自動把每個元素變成(index, element)這樣的tuple,再迭代,就同時獲得了索引和元素本身。

我們可以 改良下:

n=

['zcy'

,'cys'

,'poj'

,'yzh'

,'hjw'

]for x in

enumerate

(n):

#亦可以for idex,name in enumerate(n):

index = x[0]

# print(idex,'-',name)

name = x[1]

print

(index,

'-',name)

結果就是:

0 - zcy

1 - cys

2 - poj

3 - yzh

4 - hjw

迭代dict的value

我們可利用value()的方法把dict轉換成乙個包含所有value的list,這樣,我們迭代的就是 dict的每乙個 value。

格式:dict(字典名).values()

例如:

d=

for x in d.values():

print

(x)

這樣d中各個元素的值就被迭代出來了。

99

9897

9895

迭代dict的key和value

items()的方法

格式:dict(字典名).items()

例如:

d=

for x,y in d.items():

print

(x,y)

這樣d中的key和value就被迭代出來了。

zcy 99

cys 98

poj 97

yzh 98

hjw 95

我們做個對比:

d=

print

(d.items(

))

dict_items([('zcy', 99), ('cys', 98), ('poj', 97), ('yzh', 98), ('hjw', 95)])
如果我們

d=

for x in d.items():

print

(x)

結果就是:

('zcy', 99)

('cys', 98)

('poj', 97)

('yzh', 98)

('hjw', 95)

很明顯我們利用items()的方法把dict物件轉換成了包含tuple的list,我們對這個list進行迭代,可以同時獲得key和value。

python切片與迭代

切片指從乙個list或tuple取出部分元素是一種非常常見的操作。例如 0 表示從下標是0的地方開始 5 表示到下標是5的地方結束,但不包括下標 2 表示步長 如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們稱為迭代 iteration 只要是可迭...

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入門 切片,迭代,列表生成

取列表或者元祖中的元素,可以通過索引,但索引只能取乙個元素。如果取多個元素,通過迴圈的話,比較繁瑣。而如果用切片,一行 就解決了。切片是python中比較靈活的選取列表或者元祖中選取元素的方法,當然也可以選擇字串中的元素。基本的形式是l start end 表示從start一值到end的索引元素,間...