a[start:end] # 從start開(kāi)始到end-1結(jié)束
a[start:] # 從start開(kāi)始直到末尾
a[:end] # 從頭部開(kāi)始直到end結(jié)束
a[:] # 復(fù)制整個(gè)列表
這里還有一個(gè)step值,可以用在上面素有例子的后面:
a[start:end:step] # 按照step步長(zhǎng)直到end-1結(jié)束,并不是從start一個(gè)個(gè)遍歷到end
重點(diǎn)需要記住的是::end
值代表的是不被選中的第一個(gè)位置.所以end和start區(qū)別在于選中的元素(如果step默認(rèn)為1)
另一點(diǎn)要說(shuō)的是start
或者end
可能是個(gè)負(fù)數(shù),也就是從尾部而不是從頭部開(kāi)始計(jì)數(shù).所以:
a[-1] # 列表最后一個(gè)元素
a[-2:] # 列表最后兩個(gè)元素
a[:-2] # 除了最后兩個(gè)元素剩下的部分
如果你調(diào)用的元素多于列表中含有的元素個(gè)數(shù),Python也會(huì)很友好的表示.例如,如果你請(qǐng)求a[:-2]
而a只含有一個(gè)元素,你得到的是一個(gè)空列表而不是一個(gè)錯(cuò)誤信息.有些時(shí)候你可能更希望得到這個(gè)錯(cuò)誤信息,所以你得意識(shí)到上面的事可能發(fā)生.
source: https://taizilongxu.gitbooks.io/stackoverflow-about-python/content/29/README.html