有人给了我一个截断字符串的语法,如下所示:
string = "My Text String"
print string [0:3] # This is just an example
我不确定这是什么(字符串[0:3]语法),所以我很难在互联网上查找它并理解它是如何工作的。到目前为止,我认为它的工作原理如下:
无论如何,我可以添加一些其他的例子,但我的观点是我是这个功能的新手,我想知道它的名称以及我可以在哪里找到更多相关信息。我确定我在某个地方错过了一个很好的参考。
感谢您的任何建议, 麦克
答案 0 :(得分:21)
它被称为切片:
<强> S [I:Y:K] 强>
从i到j的s片被定义为具有的项目序列 索引k使得i <= k <1。学家如果i或j大于len(s),请使用 镜片)。如果省略i或None,则使用0.如果省略j或None,请使用 镜片)。如果i大于或等于j,则切片为空。
答案 1 :(得分:9)
正如@Uku和@thebjorn所说的那样叫Slicing
但是一种更容易思考的方法是将String视为一个列表,例如你可以这样做:
text = 'Any String'
for letter in text:
print letter
如果你想在字符串中得到一个特定的字母,那就一样了:
>> text = 'Any String'
>> text[4]
'S'
ps:记住它是基于零的,所以text [4]返回第5个字母。
使用Slice,它将从原始字符串返回“substring”文本[i:j],其中“i”是初始索引(包括),“j”是结束索引(不包括),例如:< / p>
>> text = 'Any String'
>> text[4:6] # from index 4 to 6 exclusive, so it returns letters from index 4 and 5
'St'
>> text[0:4]
'Any '
>> text[:4] # omiting the "i" index means i = 0
'Any '
>> text[4:] # omitting the "j" index means until the end of the string
负索引相对于String的结尾,例如从负索引替换为“len(text)+ i”。
在我们的情况下,len(text)是10,负索引-1就像使用text [9]来获取最后一个元素,-2将返回最后一个元素,依此类推。
在您发送的示例中,字符串[0:-3]应返回除最后3个字符以外的所有内容,字符串[3:-3]应返回除前3和后3之外的所有内容。
希望它有所帮助。
答案 2 :(得分:2)
这称为切片,详细了解它,例如在这里:http://docs.python.org/tutorial/introduction.html#strings