0. 下邊的列表分片操作會打印什么內(nèi)容?
>>> list1 = [1, 3, 2, 9, 7, 8]
>>> list1[2:5]
A:[2, 9, 7]
1. 請問 list1[0] 和 list1[0:1] 一樣嗎巷帝?
A:不一樣攒盈,list1[0]返回第0個元素之肤无,list1[0:1]只包含第0個元素的列表
2. 如果你每次想從列表的末尾取出一個元素烹骨,并將這個元素插入到列表的最前邊万栅,你會怎么做未斑?
A:list.insert(0,list.pop())
3. 有些魚油比較調(diào)皮溃卡,他說我想試試 list1[-3:-1] 會不會報錯溢豆,怎么知道一試居然顯示 [9, 7],這是怎么回事呢瘸羡?
A:負(fù)數(shù)索引從右到左
4. 在進(jìn)行分片的時候漩仙,我們知道分片的開始和結(jié)束位置需要進(jìn)行指定,但其實還有另外一個隱藏的設(shè)置:步長犹赖。
在普通的分片操作中队他,步長默認(rèn)設(shè)置為1,表示逐個遍歷元素峻村。其實我們可以人為調(diào)整步長以達(dá)到不可告人的秘密麸折。
>>> list1[0:6:2]
[1, 2, 7]
那么依你推測,關(guān)于步長的知識點(diǎn)還有哪些(很多知識點(diǎn)都是通用的)雀哨?
A:步長可以為負(fù)數(shù)磕谅,步長不能為0私爷,步長不能超過切片范圍
5. 課堂上小甲魚說可以利用分片完成列表的拷貝 list2 = list1[:]雾棺,那事實上可不可以直接寫成 list2 = list1 更加簡潔呢?
A:不可以衬浑,list2 = list1 是將list1的值賦值給list2捌浩,list1改變,list2也將會變工秩,切片拷貝不會