一、遍歷串列
1. 遍歷整個串列:使用for回圈
1 colors=['red','yellow','blue','green'] #定義串列 2 for color in colors: #使用回圈:從串列中提取一個元素并將其存在變數i中 3 print(color) #列印變數i的值
以上代碼運行的結果是:
執行第1行代碼定義串列colors,執行第2行代碼;for陳述句末尾的冒號告訴Python,下一行是回圈的第一行,進入第一次回圈:
第2行代碼獲取串列colors中的第一個值('red'),并將其存盤到變數 color 中;接下來執行第3行代碼,讓Python列印 color 的值'red',完成第一次回圈,
由于串列還包含其他值,Python回傳到回圈的第一行,即第2行代碼,開始第二次回圈:
Python獲取串列中的第二個顏色'yellow',并將其存盤到變數 color 中,再執行第3行代碼,Python再次列印變數 color 的當前的值'yellow',完成第二次回圈,
依此類推,直至對串列中的最后一個值'green'進行處理,至此,串列沒有其他的值了,Python執行程式的下一行代碼,
在這個示例中,for回圈后面沒有其他的代碼,程式就此結束,
2.for 回圈中的縮進與結束后操作
1 colors=['red','yellow','blue','green'] 2 for color in colors: 3 print(color.title()+"是我最喜歡的顏色,") 4 print("但"+color.upper()+"是他最討厭的顏色,\n") 5 print("這條陳述句不在回圈內,只在回圈結束后執行一次")
以上代碼運行的結果是:
在代碼for color in colors后面,每個縮進的代碼行都是回圈的一部分,且將針對串列中的每個值都執行一次,因此,可對串列中的每個值執行任意次數的操作,由于前兩條print陳述句都縮進了,因此它們都將針對串列中的每個元素執行一次,第二條print陳述句中的換行符"\n",在每次迭代結束后都插入一個空行從,第3條print陳述句不在回圈內,只在回圈結束后執行一次
二、創建數值串列
1.函式 range()介紹
可用Python函式range()讓成一系列的數字,函式range()讓Python指定的第一個值開始數,并在到達指定的第二個值后停止,輸出不包含第二個值,1 for value_1 in range(2,7): #使用回圈遍歷range(2,7)的整數 2 print (value_1)
以上代碼運行的結果是:
2.創建數值串列
要創建數字串列,可使用函式list()將range()的結果直接轉換為串列,如果將range()作為list()的引數,輸出將為一個數字串列,使用函式range()時,還可指定步長,【range(a,b,c)】a為開始元素,b為結束元素(不包含b),c為步長,串列決議:將for回圈和創建新元素的代碼合并成一行,并自動附加新元素,用法:首先指定一個描述性的串列名,如Sa;然后指定一個左方括號,并定義一個運算式,用于生成你要存盤到串列中的值,在下面20-24行代碼中,運算式為a**2,它計算平方值,接下來,撰寫一個for回圈,用于給運算式提供值,再加上右方括號,在下面示例中,for回圈為for value in range(1,11),它將值1~10提供給運算式value**2,請注意,這里的for陳述句末尾沒有冒號,
1 print('創建數字串列') 2 num=list(range(10,15)) #創建num串列,將range()的結果直接轉換為串列,此處range()作為串列的引數,運行后輸出一個數字串列 3 print(num) 4 5 print('\n指定range()的步長') 6 num1=list(range(10,15,2)) #從10開始,到15(不包括15),步長為2 7 print(num1) 8 9 print("\n練習:創建一個包含前十個整數的平方串列") 10 As=[] #新建空串列 11 for a in range(1,11): #使用range()函式創建數字1~10,并將其保存在變數a中 12 A=a**2 #計算當前回圈值得平方 13 As.append(A) #使用append()方法將當前平方值添加到串列中 14 print(As) #回圈結束后,列印串列, 15 16 print("\n練習的簡介代碼") 17 S=[] 18 for i in range(1,11): 19 S.append(i**2) 20 print(S) 21 22 print("\n串列決議例子:將練習代碼合成一行") 23 Sa=[a**2 for a in range(1,11)] 24 print(Sa)
以上代碼運行的結果是:
3.數字串列簡單統計計算
min()函式:回傳數字串列最小值
max()函式:回傳數字串列最大值
sum()函式:對數字串列元素求和
1 D=[10,20,30,40,50,60,70,80,90,0] 2 print(min(D)) 3 print(max(D)) 4 print(sum(D))
以上代碼運行的結果是:
三、使用串列的一部分
1. 切片
創建切片,需使用起始元素和終止元素的索引,串列的切片回傳的是串列,可理解為獲取原串列的子集,【list[a:b:c]】,a、b、c分別為起始于索引、終止索引及步長(不包括終止位置元素b)注意:
①串列切片使用符號是冒號“:”,range()函式使用的是逗號“,”,串列用逗號“,”分隔,
②未指定起始索引,默認從原串列第一個位置,即索引0開始提取元素,
③未指定終止索引,默認提取到列最后一個元素,
④串列中的步長理解:假設原串列為Q=[-20,-10,10,20,30,40,50,60,70,80,90,100,0]切片為Q[3:10:3],則切片從3號索引的20開始,到9號索引位的80,間隔3提取元素組成串列,提取的子集為[50,80],特別注意,間隔3可理解為從起始索引位開始,向后開始數1~3,要提取每次數到3時該索引位置的元素,
1 alist=[3,'@','pen','book',6,'W','top'] 2 print(alist) #列印原串列 3 print("串列的切片回傳的是串列,可理解為獲取原串列的子集") 4 print(alist[:]) #同樣是列印原串列,串列切片使用的符號是冒號【:】,注意range()函式使用的是逗號【,】,串列用逗號【,】分隔 5 print(alist[:3]) #未指定開始索引,從頭開始到索引3(不包括索引3位置元素) 6 print(alist[3:]) #未指定終止元素,切片未從索引3位置到串列最后 7 print(alist[0:2]) #提取第1-2個元素 8 print(alist[1:5:2]) #以2未步長,提取從第2個開始到第5個元素,即索引4位置元素,注意步長 9 print(alist[1::2]) #以2為步長,提取從第2個開始到串列最后的元素 10 print(alist[-3:]) #提取倒數第三位至最后的元素 11 print(alist[2:-2]) #提取從第三位到倒數第二位之間的元素
以上代碼運行的結果是:
2. 遍歷切片
要遍歷串列的部分元素,可在for回圈中使用切片,下面的例子將遍歷前三個元素并將其列印出來,
1 print("代碼1:") 2 alist=[3,'@','pen','book',6,'W','top'] 3 AA=alist[0:3] 4 for a in AA: 5 print(a) 6 7 print("\n代碼2:") 8 alist_1=[3,'@','pen','book',6,'W','top'] 9 for a in alist_1[:3]: 10 print(a)
以上代碼運行結果是:

使用串列決議不能得到上面要求的結果:
1 print("\n'代碼3:串列決議'不能得到提取前三個元素并將其列印的結果,因為串列決議得到的是串列") 2 alist_2=[3,'@','pen','book',6,'W','top'] 3 a=[i for i in alist_2[:3]] 4 print(a)
以上代碼運行的結果是:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/541538.html
標籤:Python
