切片 在Python基礎篇里,我們知道Python的可序列對象可以通過索引號(下標)來引用對象元素,索引號可以由0開始從左向右依次獲取,可以從-1開始由右向左獲取。這種方法可以幫助我們依次獲取我們想要的元素。而切片可以幫助我們獲取被切片元素的副本。 可序列對象切片時所需要的參數[start_inde ...
切片
在Python基礎篇里,我們知道Python的可序列對象可以通過索引號(下標)來引用對象元素,索引號可以由0開始從左向右依次獲取,可以從-1開始由右向左獲取。這種方法可以幫助我們依次獲取我們想要的元素。而切片可以幫助我們獲取被切片元素的副本。
可序列對象切片時所需要的參數[start_index:stop_index:step]
start_index:切片的起始位置
stop_index:切片的結束為止(不包括)
step:步長,可選參數。預設值是1,但不能為0.表示依次遞增。
操作
|
解釋 | 輸出 |
print(testList)
|
列印測試列表 | [1, 2, 3, 4, 5, 6, 7, 8, 9] |
print(testList[:])
|
輸出列表中所有元素 | [1, 2, 3, 4, 5, 6, 7, 8, 9] |
print(testList[1:7:2])
|
從第二個開始,到第8個元素(不包含),每次間隔2個元素 | [2,4,6] |
print(testList[:5])
|
從第一個開始,到第6個(不包含),預設間隔1個元素 | [1,2,3,4,5] |
print(testList[-5:]) | 從右往左第五個開始至最後一個元素結束,預設間隔1個元素 | [5,6,7,8,9] |
print(testList[::2]) | 從第一個開始,到最後一個結束,每次間隔2個元素 | [1,3,5,7,9] |
print(testList[::-1]) | 從第一個開始,至最後一個結束,倒序間隔一個元素 | [9, 8, 7, 6, 5, 4, 3, 2, 1] |
testList[1:2]=['a']
print(testList)
|
從第2個元素開始,第三個元素結束(不包含),插入並替換該區間元素 | [1, 'a', 3, 4, 5, 6, 7, 8, 9] |
del testList[1]
|
刪除第二個元素,請註意,這時只是從原來對象中的副本中刪除後重新獲取一個新的引用對象。 | [1, 3, 4, 5, 6, 7, 8, 9] |
del testList[1::2]
|
從第二個元素開始刪除對象元素,至最後一個元素結束,每次間隔2個 | [1, 3, 5, 7, 9] |
迭代
在開發語言中,遍歷獲取可序列對象我們稱之為迭代。Python中,不僅可以像其他語言一樣迭代可序列對象還可以迭代任意可序列化對象。例如 字典,字元串,元祖
案例 |
解釋 | 輸出 |
testList=[1,2,3]
|
迭代列表 |
1 2 3 |
testStr='hello'
|
迭代字元串 |
h e l l o |
testDic={'name':'zhangsan','age':18}
|
迴圈字典,預設輸出key |
name age |
判斷一個元素是否可以被迭代
在Python中可以通過collections模塊的Iterable類型判斷元素是否可以被迭代,當元素允許被迭代時返回True,反之返回False
from collections import Iterable
案例 | 解釋 | 輸出 |
a=isinstance('abc',Iterable) print(a) |
判斷字元串(python中'a'也將作為字元串"a")使用 | True |
testList=[1,2,3] a=isinstance(testList,Iterable) print(a) |
判斷列表 | True |
testDict={'name':'zhangsan','age':18} a=isinstance(testDict,Iterable) print(a) |
判斷字典 | True |
testTuple=(1,2,3) a=isinstance(testTuple,Iterable) print(a) |
判斷元祖 | True |
testInt=123 a=isinstance(testInt,Iterable) print(a) |
判斷數值 | False |
列表生成式
Python中列表生成式不僅可以迭代輸出對象元素,還可以簡化我們的代碼。
for迴圈 | 列表生成式 | |
l=[] |
n=[x*x for x in range(1,11)]
|
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100] |
列表生成式與if條件一起使用
for 迴圈 |
列表生成式 | 輸出 |
l=[1,2,4,5,6,7,8,9]
|
l=[1,2,4,5,6,7,8,9]
|
[2,4,6,8] |
列表生成式與字典一起使用
for迴圈 | 列表生成式 | 輸出 |
testDict={'name':'zhangsan','age':18}
|
testDict={'name':'zhangsan','age':18}
|
name=:zhangsan |