Python中的切片

2021-07-29 09:28:30 字數 1786 閱讀 3420

1切片

切片就是取出集合中的一部分元素。當然集合不能是無序的,因為他是按照索引去取值的

例:range()函式可以建立乙個數列

取出:

1. 前10個數;

2. 3的倍數;

3. 不大於50的5的倍數。

l = range

(1,101)

print l[:10]

print l[2::3]

print l[4

:50:5]

輸出結果

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]

[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

分析:

range()函式輸出是第乙個引數到第二個引數,但是不包含第二個引數,也就是說 l=[1,2,…,100]

切片的引數:

第乙個是起始的位置 預設起始位置為0

第二個是截止的位置 因為結果是不包含截止位置的,所以預設截止位置為len(l),而不是len(l)-1

第三個是當前位置向後移動n個位置取出這個位置的元素

所以 print l[4:50:5]的起始位置就是4,這個位置的元素就是5,前50個元素就是0到49, 因為結果是不包含截止位置的,所以第二個引數為50。因為取得是5的倍數,所以第二個元素應該是10,也就是第9個位置的元素,9—4=5,所以第三個引數為5

倒序切片

python支援l[-1]取倒數第乙個元素,那麼它同樣支援倒數切片

倒數第乙個元素的索引是-1。倒序切片包含起始索引,不包含結束索引

例: 利用倒序切片對 1 - 100 的數列取出:

* 最後10個數;

* 最後10個5的倍數

l = range

(1,101)

print l[-10:]

print l[-46::5]

輸出:

[91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

[55, 60, 65, 70, 75, 80, 85, 90, 95, 100]

分析:

最後10個5的倍數

就是55到100;

55元素的位置就是64;如果反過來就它的位置就是45,因為倒序切片是從-1開始的而不是從零開始,所以這個位置就是-46

對字串切片,道理和上面的一樣

例:字串有個方法 upper() 可以把字元變成大寫字母:

『abc』.upper()

『abc』

但它會把所有字母都變成大寫。請設計乙個函式,它接受乙個字串,然後返回乙個僅首字母變成大寫的字串。

def

firstcharupper

(s):

return s[0].upper()+s[1:]

print firstcharupper('hello')

print firstcharupper('sunday')

print firstcharupper('september')

輸出:

hello

sunday

september

python 中的切片

print str 0 3 擷取第一位到第三位的字元 print str 擷取字串的全部字元 print str 6 擷取第七個字元到結尾 print str 3 擷取從頭開始到倒數第三個字元之前 print str 2 擷取第三個字元 print str 1 擷取倒數第乙個字元 print str...

Python中的切片

在前幾篇文章中我提過切片的用法,今天詳細來聊下python中的切片,名字看起來難以理解,別慌!我的理解切片就是擷取序列中元素的一種方式 所謂的序列就是有順序的列表,如 字串str 列表list 元組tuple都是序列 eg list 1,2,3 print list 0 1 上邊 獲取了list列表...

Python中的切片

取乙個list或tuple的部分元素是非常常見的操作。比如,乙個list如下 取前3個元素,應該怎麼做?l liming tom jack jim 一般方法 print l 0 l 1 l 2 liming tom jack該方法缺點 如果擴充套件一下,取前n個元素就比較麻煩。如果提取前n個元素,也...