有一个字符串,我们想通过一个循环按照这样的形式显示它:每次都把位于最后的一个字符砍掉,下面是实现这个要求的一种方法:
s = 'abcde' for i in range(-1, -len(s), -1): print(s[:i])
abcd
abc
ab
a
可是,该如何在第一次迭代的时候显示整个字符串呢?
我们的方案是使用另一个小技巧:用 None 作为索引值,这样一来就可以满足你的需要,比
如说,在你想用一个变量作为索引来从第一个到遍历最后一个元素的时候:
>>> s = 'abcde'
>>> for i in [None] + list(range(-1, -len(s), -1)):
... print s[:i]
...
abcde
abcd
abc
ab
a
s = '*'*10 for i in range(-1, -len(s), -1): print(s[:i])
*********
********
*******
******
*****
****
***
**
*
s = '*'*10 for i in range(-1, -len(s), -1): print(s[i:])
*
**
***
****
*****
******
*******
********
*********
s = '*'*9 for i in list(range(-1, -len(s), -1)) + [None]: print(s[i:])
*
**
***
****
*****
******
*******
********
*********