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個元素,也...