2017-05-27 75 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'] 
相关问题