python核心编程,第六章6.1.2中有一节是切片的更多内容,有这样一个例子:有这么一个问题:有一个字符串,我们想通过一个循环按照这样的形式显示它:每次都把
这种解决方案的原理是None元素为end元素的话,不切割任何元素,None与0在这里是不同的
位于最后的一个字符砍掉,这个问题的核心在于,如何在循环切片操作的第一次,把最后一个元素保留下来,两种解决方案:
>>>s = "abcde" >>> x = range(len(s),0,-1) >>> for i in x: print s[:i] abcde abcd abc ab a >>> |
这种解决方案利用的原理是:切片操作时s[start:end:step],如果给出end位置大于或者等于列表长度,则列表最后一个元素会被包含
>>> x = [None] >>> y = range(-1,-len(s),-1) >>> for item in y: x.append(item) >>> x [None, -1, -2, -3, -4] >>> for item in x: print s[:x] |
>>> x = [1,2,3] >>> x[:None] [1, 2, 3] >>> x[None:None] [1, 2, 3] >>> x [None:0] [] >>> |