python學習 切片 迭代 列表生成式

2021-09-25 05:22:40 字數 2026 閱讀 3766

1、切片

s=list(range(15))

print(s) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

print(s[0],s[1],s[2]) #0 1 2

print(s[0:3]) #[0, 1, 2],s[0]到s[3],包括s[0]不包括s[3]

print(s[:3]) #[0, 1, 2],起始值為0時可以省略

print(s[1:3]) #[1, 2] ,s[1]到s[3],包括s[1]不包括s[3]

print(s[-1]) #14 ,倒數第乙個元素

print(s[-5:]) #[10, 11, 12, 13, 14] #倒數最後5個元素

print(s[2:5]) #[2, 3, 4]

print(s[:5:2]) #[0, 2, 4] ,s[0]到s[5],每隔2個取乙個值

print(s[::5]) #[0, 5, 10],s全部元素,每隔5個取乙個值

print(s[::1]) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

print(s[::-1]) # [14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

print(s[-2]) #13,倒數第二個元素

2、迭代:

當我們使用for迴圈時,只要作用於乙個可迭代物件,for迴圈就可以正常執行,那麼,如何判斷乙個物件是可迭代物件呢?方法是通過collections模組的iterable型別判斷:

from collections import iterable

d =

print(isinstance(d,iterable)) #true

print(isinstance(123,iterable)) #false

print(isinstance('123',iterable)) #true

for i in d.values():

print(i) #1 2 3

for k in d.keys():

print(k) #a b c

for n,m in d.items():

print(n,m) #1 a 2 b 3 c

請使用迭代查詢乙個list中最小和最大值,並返回乙個tuple: 

#請使用迭代查詢乙個list中最小和最大值,並返回乙個tuple:

str_h=[1,3,6,9,0,2,4]

def findminandmax(l):

if l == :

return (none, none)

else:

return (min(l), max(l))

print(findminandmax(str_h)) #(0,9)

3、列表生成式:

print(list(range(1,11)))   #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

l=for x in range(1,11):

print(l) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

但是迴圈太繁瑣,而列表生成式則可以用一行語句代替迴圈生成上面的list:

print([x*x for x in range(1,11)])  #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
for迴圈後面還可以加上if判斷,這樣我們就可以篩選出僅偶數的平方:

print([x*x for x in range(1,11) if x%2==0])  #[4, 16, 36, 64, 100]

python入門 切片,迭代,列表生成

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

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

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 前十個數,每兩個取乙...

python 切片 Python 列表切片

想必很多人都使用過列表的切片,通過切片可以從列表中獲取乙個或多個元素,但你真的了解切片?一 一般玩法 name a b c d e f g h name 0 2 獲取 0 2 中間的元素,不包括索引為 2 的元素 a b name 2 從 0 開始切,可省略 0 a b name 1 同樣地,切到最...