Python 3字符串切片行为不一致

Python 3字符串切片行为不一致,python,slice,Python,Slice,想要一种从字符串中提取年、月、日的简单方法。 使用Python 3.1.2 我试过这个: processdate = "20100818" print(processdate[0:4]) print(processdate[4:2]) print(processdate[6:2]) 结果: ...2010 ... ... 重新阅读所有的字符串文档,进行了一些搜索,无法理解为什么会这样做。 我确信这是一个我不知道该怎么做的无需思考的问题,我今天已经在这个问题上做得够多了。在[4:2]中,你告诉

想要一种从字符串中提取年、月、日的简单方法。 使用Python 3.1.2

我试过这个:

processdate = "20100818"
print(processdate[0:4])
print(processdate[4:2])
print(processdate[6:2])
结果:

...2010
...
...
重新阅读所有的字符串文档,进行了一些搜索,无法理解为什么会这样做。
我确信这是一个我不知道该怎么做的无需思考的问题,我今天已经在这个问题上做得够多了。

在[4:2]中,你告诉Python从字符索引4开始,在字符索引2停止。由于4>2,您已经过了开始时应该停止的位置,因此切片为空

processdate = "20100818" 
print(processdate[0:4]) # year
print(processdate[4:6]) # month
print(processdate[6:8]) # date 

你想要第四个和第五个字符吗?然后您需要[4:6]作为替代。

使用[4:2]的片段,您告诉Python从字符索引4开始,在字符索引2停止。由于4>2,您已经过了开始时应该停止的位置,因此切片为空


你想要第四个和第五个字符吗?那么你想要的是[4:6]。

最好的方法是使用


最好的方法是使用


啊,在一路上的某个地方,我得到的印象是,4:2是开始字符4长度2,而不是开始字符4到字符2,就像我说的,这是一个愚蠢的事情,我只是错过了一路。谢谢。请将此标记为正确答案,以表彰@kindall!:)或者将我的标记为正确,因为我实际上修复了代码,并首先进行了回答。“首先回答”绝不是将一项标记为解决方案而不是另一项的理由;回答第二个问题的人可能对答案考虑得更多。啊,在这个过程中的某个地方,我得到的印象是4:2是起始字符4长度为2,而不是起始字符4到字符2,正如我所说,这是一个我在过程中错过的愚蠢的事情。谢谢。请将此标记为正确答案,以表彰@kindall!:)或者将我的标记为正确,因为我实际上修复了代码,并首先进行了回答。“首先回答”绝不是将一项标记为解决方案而不是另一项的理由;第二个回答的人可能对答案考虑得更多。哦,看那里。这可能是有用的。哦,看那里。这可能是有用的。泰
print( strptime( ..., "%Y%m%d" ) )