python學習筆記(八)切片 迭代 列表生成式

2021-08-28 17:02:43 字數 1501 閱讀 4075

1、切片

提取前n個元素,0-(n-1)

>>> l = ['michael', 'sarah', 'tracy', 'bob', 'jack']

>>> l[0:3]

['michael', 'sarah', 'tracy']

#如果第乙個索引是0,可以省略

>>> l[:3]

['michael', 'sarah', 'tracy']

#從倒數第二個取,至最後

>>> l[-2:]

['bob', 'jack']

#前十個數,每兩個取乙個

>>> l = list(range(100))

>>> l[:10:2]

[0, 2, 4, 6, 8]

tuple也是一種list,唯一區別是tuple不可變,tuple也可以進行切片操作,結果仍是tuple

2、迭代

通過for遍歷整個list或tuple的操作稱之為迭代(iteration)。

字典的迭代:

d = 

for key in d:

print(key)

字典的迭代預設迭代的是key,如果迭代value可以用 for value in d.values(),如果同時迭代key和value可以用for k, v in d.items()

判斷物件是否可以迭代

>>> from collections import iterable

>>> isinstance('abc', iterable) #可以迭代

true

>>> isinstance(123, iterable) #不可以迭代

false

3、列表生成式

生成[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11))

生成[1*1, 2*2, ..., 10*10]

[x*x for x in range(1, 11)]
生成[2*2, 4*4, ..., 10*10]

[x*x for x in range(1, 11) if x % 2 == 0]
生成全排列

>>> [m + n for m in 'abc' for n in 'xyz']

['ax', 'ay', 'az', 'bx', 'by', 'bz', 'cx', 'cy', 'cz']

由字典生成list

>>> d = 

>>> [k + '=' + v for k, v in d.items()]

['y=b', 'x=a', 'z=c']

把list中所有的字串換成小寫

>>> [s.lower() for s in l]

上述操作同樣適應於tuple,只需把改為()

python筆記八(切片)

一 切片 首先我們要記得在python中可以用於切片的物件有列表 元組 字串。切片操作就是直接從列表 元組或字串中,選擇出我們想要的內容,這些操作非常簡潔實用。l list range 20 l 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 l ...

python 切片,迭代

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

Python學習筆記 切片

學習廖雪峰python教程所得。1.切片 slice 可用於list tuple或字串。以list為例 l a b c d e 切片操作符 l x y z x y z 切片索引,x是左端,y是右端,z是步長,在 x,y 區間從左到右每隔z取值,預設z為1可以省略z引數。步長的負號就是反向,從右到左取...