理解切片基本用法:
首先需要明白,可迭代對象,按照正數索引(正序)是從0開始的,按照負數索引(逆序)是從-1開始的。
>>> astring = 'Hello world'
>>> astring[0:2]
'He'
>>>
可見,這種情況下,給切片操作一個起始位置,和一個終止位置,則顯示從起始位置開始(包括起始位置)到終止位置(不包括終止位置)之間的內容;
在有負數索引的情況下,是類似的,只要確定終止位置的內容:
>>> astring[0:-1]
'Hello worl'
>>>
>>> astring
'Hello world'
>>> astring[0::1]
'Hello world'
>>> astring[0::2]
'Hlowrd'
>>> astring[0::3]
'Hlwl'
>>> astring[0::4]
'Hor'
>>>
在有三個參數的情況下,第一個起始位置,第二個是終止位置,地三個是步長。
測試程式:
# 首先理解切片含義,如下為切片程式結果示範
>>> s='abcde'
>>> s[:0]
''
>>> s[0:]
'abcde'
>>> s[1:]
'bcde'
>>> s[2:]
'cde'
>>> s[:3]
'abc'
理解range()基本用法:
測試程式一:
>>> range(1,5) # 輸出從1到5的結果。包括頭,不包括尾.
[1, 2, 3, 4]
>>> range(1,5,2) # 輸出從1到5,間隔距離為2的結果。包括頭,不包括尾.
[1, 3]
>>> range(5) # 輸出從0到5的結果。預設起止為0。包括頭,不包括尾.
[0, 1, 2, 3, 4]
測試程式二:
>>> s='abcde'
>>> i = -1
>>> for i in range(-1,-len(s),-1): # 輸出結果
... print s[:i]
...
abcd
abc
ab
a
測試程式三:
>>> s='abcde'
>>> for i in range(len(s),0,-1): # 輸出結果
... print s[:i]
...
abcde
abcd
abc
ab
a
測試程式四:
>>> s='abcde'
>>> for i in [None] + range(-1,-len(s),-1): # 用None作為索引值的輸出結果
... print s[:i]
...
abcde
abcd
abc
ab
a
另外,range可以直接給list變數賦值:
elements = range(0, 6)