切片:(slice)操作符
其格式為:列表(元組)名+[ : ]
舉個例子:我們想提取前三科成績
score=
['數學=90'
,'語文=89'
,'英語=87'
,'物理=77'
,'化學=90',]
print
(score[0:
3])
結果:
['數學=90', '語文=89', '英語=87']
像上面的例子score[0:3]
表示的是從索引0
開始取,直到索引3
為止,但不包括索引3
。即索引0
,1
,2
。並且若是從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的索引元素,間...