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 同樣地,切到最...