在python中截断一个字符串

时间:2012-04-05 18:57:49

标签: python truncate

有人给了我一个截断字符串的语法,如下所示:

string = "My Text String"

print string [0:3] # This is just an example

我不确定这是什么(字符串[0:3]语法),所以我很难在互联网上查找它并理解它是如何工作的。到目前为止,我认为它的工作原理如下:

  • string [0:3]#返回字符串
  • 中的前3个字符
  • string [0:-3]#将返回字符串的最后3个字符
  • string [3:-3]#似乎截断前3个字符和后3个字符
  • string [1:0] #I返回2个单引号....不确定这是做什么
  • string [-1:1]#与上一个相同

无论如何,我可以添加一些其他的例子,但我的观点是我是这个功能的新手,我想知道它的名称以及我可以在哪里找到更多相关信息。我确定我在某个地方错过了一个很好的参考。

感谢您的任何建议, 麦克

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,则切片为空。

source

答案 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