2017-05-27 50 views
-1

我構建了這個簡單的小函數來將6個字符的字符串分成兩個段,但爲什麼它不返回兩個3個字母的結果?即,我會想:Python - 爲什麼零索引不適用於字符串?

FXPair [0:2] => 0,1,2在索引方面?

def ISOCodes(FXPair): 
    ccy1 = FXPair[0:2] 
    ccy2 = FXPair[3:5] 
    return [ccy1, ccy2] 

ISOCodes('USDCAD') 

[ '美國', 'CA']

+1

至於爲什麼切片是半開的,請閱讀https://stackoverflow.com/questions/11364533/why-are-slice-and-range-upper-bound-exclusive –

回答

6

索引正是爲字符串和列表相同,其實任何可索引對象。

但是,您誤解了切片的工作原理。切片半開;換句話說,包含下限,但上限不包含。切片什麼[0:2]讓你只索引0和1,同樣[3:5]讓你只需3和4

2

您可以使用[3]和[3:]如下所示:

def ISOCodes(FXPair): 
    ccy1 = FXPair[:3] 
    ccy2 = FXPair[3:] 
    return [ccy1, ccy2] 

輸出:

['USD', 'CAD'] 
相關問題