原創文章,歡迎轉載。轉載請註明:轉載自 祥的博客
原文鏈接:https://blog.csdn.net/humanking7/article/details/96728009
Python切片Slice的運用
0. 環境
Python 3.6
1. 切片操作
1.1. 簡介
取指定索引範圍的操作,用循環十分繁瑣,因此Python
提供了切片(Slice
)操作符,能大大簡化這種操作。
一個完整的切片表達式包含兩個:
,用於分隔三個參數(start_index、end_index、step)
,當只有一個:
時,默認第三個參數step=1
。
# 切片操作基本表達式
object[start_index : end_index : step]
1.2. 舉例說明
先設置一個列表從1到100,含有100個元素
# 創建列表 L= [1, 2, ..., 99, 100]
L = list(range(1, 101))
eg.1. 取第1元素
>> L[0]
1
eg.2. 取最後1個元素
>> L[-1]
100
eg.3. 複製整個列表
>> L[:]
[1, 2, ..., 99, 100]
eg.4. 取前10個元素
>> L[:10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
eg.5. 取前10個元素
>> L[:10] # 或者 L[0:10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
eg.6. 取從第11個元素到第20個元素
>> L[10:20]
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
注意:
L[10]
爲11
L[20]
爲21
eg.7.1. 每隔10個取一個數,從開始
>> L[::10] # 或者 L[0::10]
[1, 11, 21, 31, 41, 51, 61, 71, 81, 91]
eg.7.2. 每隔10個取一個數,從第50個元素(51)開始
>> L[50::10]
[51, 61, 71, 81, 91]
eg.7.3. 每隔10個取一個數,從第50個元素(51)開始,到第89個元素(90)
>> L[50:90:10]
[51, 61, 71, 81]
eg.8. 取後10個元素
>> L[-10:]
[91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
注意:
L[-10:-1]
會刨除最後1個元素;L[-10,0]
會得到[]
1.3. 簡單運用
用切片寫一個 去掉字符串頭尾空格的程序trim()
def trim(s):
n = len(s)
if n == 0: return s
while s[0] == ' ':
s = s[1:]
n = n - 1
if n == 0: return s
while s[-1] == ' ':
s = s[:-1]
n = n - 1
if n == 0: return s
return s
測試代碼
if trim('hello ') != 'hello':
print('1. 測試失敗!')
elif trim(' hello') != 'hello':
print('2. 測試失敗!')
elif trim(' hello ') != 'hello':
print('3. 測試失敗!')
elif trim(' hello world ') != 'hello world':
print('4. 測試失敗!')
elif trim('') != '':
print('5. 測試失敗!')
elif trim(' ') != '':
print('6. 測試失敗!')
else:
print('trim() 函數測試成功!')
2. 參考文獻
廖雪峯Python教程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017269965565856
OK!
以上,Enjoy~
i