在python中截断一个字符串

Mik*_*ike 16 python truncate

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

string = "My Text String"

print string [0:3] # This is just an example
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢你的任何建议,迈克

Uku*_*kit 21

它被称为切片:

S [I:Y:k]的

从i到j的s的片被定义为具有索引k的项的序列,使得i <= k <j.如果i或j大于len(s),则使用len(s).如果省略i或None,则使用0.如果省略j或None,则使用len(s).如果i大于或等于j,则切片为空.

资源

  • 非常感谢Uku!感谢您给它一个名字,并说明它的工作原理.非常感激! (2认同)

小智 9

正如@Uku和@thebjorn所说的那样叫切片

但是一种更容易思考的方法是将String视为一个列表,例如你可以这样做:

text = 'Any String'
for letter in text:
    print letter
Run Code Online (Sandbox Code Playgroud)

如果你想在字符串中得到一个特定的字母,那也是一样的:

>> text = 'Any String'
>> text[4]
'S'
Run Code Online (Sandbox Code Playgroud)

ps:记住它是基于零的,所以text [4]返回第5个字母.

使用Slice它将返回原始String中的"substring"文本[i:j],其中"i"是初始索引(包括),"j"是结束索引(不包括),例如:

>> 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
Run Code Online (Sandbox Code Playgroud)

负索引相对于String的结尾,例如从负索引替换为"len(text)+ i".

在我们的情况下,len(text)是10,负索引-1就像使用text [9]来获取最后一个元素,-2将返回最后一个元素,依此类推.

在您发送的示例中,字符串[0:-3]应返回除最后3个字符之外的所有内容,字符串[3:-3]应返回除前3和后3之外的所有内容.

希望它有所帮助.