Python在字符串中切片两次 message=“帮助我欧比-万·克诺比,你是我唯一的希望。” message=消息[8:][:-22] 打印(消息[8:],end=”“)
结果:克诺比 是否顺序是从左到右,在第一个[:]之后返回下一个[:]的结果?Python在字符串中切片两次 message=“帮助我欧比-万·克诺比,你是我唯一的希望。” message=消息[8:][:-22] 打印(消息[8:],end=”“),python,Python,结果:克诺比 是否顺序是从左到右,在第一个[:]之后返回下一个[:]的结果? 任何文档声明它将返回第二个[:]的结果?[8:][/code>都是从切片开始的地方开始的[:-22]直到切片完成时,-22指示应从上一个索引向后切片22个位置。分多个步骤考虑该操作 第一:整条绳子 “帮助我,欧比-万·克诺比,你是我唯一的希望。” 第二。从8开始切片字符串。结果: “欧比旺·克诺比,你是我唯一的希望。” 第三,。从末尾开始从22中切片结果。结果: “欧比旺·克诺比” 最后,当您打印时,您将再次进行切片,
任何文档声明它将返回第二个[:]的结果?[
8:][/code>都是从切片开始的地方开始的<代码>[:-22]
直到切片完成时,-22
指示应从上一个索引向后切片22个位置。分多个步骤考虑该操作
第一:整条绳子
“帮助我,欧比-万·克诺比,你是我唯一的希望。”
第二。从8
开始切片字符串。结果:
“欧比旺·克诺比,你是我唯一的希望。”
第三,。从末尾开始从22
中切片结果。结果:
“欧比旺·克诺比”
最后,当您打印时,您将再次进行切片,因此第四步:
“克诺比”
因此,您可以看到,多个方括号并不一定意味着多个维度,而是链式操作,每个操作都是对上一个操作的结果执行的
在数组数组中,这具有访问您的值的效果,在字符串中,它只是意味着在更多的位置进行切片。
消息[8::
返回从消息左侧第8个位置开始的所有元素
>>> message[8:]
"Obi-Wan Kenobi, you're my only hope."
>>> message[8:][:-22]
"Obi-Wan Kenobi"
消息[8:][:-22]
返回消息[8:][/code>右侧第22个位置的所有元素(“欧比旺·克诺比,你是我唯一的希望。”
)继续
因此,如果再次打印消息[8://code>,它将从“欧比-万-克诺比”
左侧的第8个位置返回所有元素,即“克诺比”
message[8:://code>表示从第9个字符到字符串末尾的字符串<代码>欧比旺·克诺比,你是我唯一的希望。
消息[8::[:-22]
然后执行第二个切片[:-22]
-ve索引表示从末尾切片字符串。在这里,字符串被切片,它从结尾处取出所有的字符,剩下22个字符<代码>欧比旺·克诺比
因此,您在消息[8::][:-22]
之后的字符串将变成Obi-Wan-Kenobi
最后,在打印时,您将再次对字符串进行切片print(message[8:],end=“”)
,该字符串接受Obi-Wan-Kenobi
,并对其进行切片,以获取字符串中第9个字符的所有字符,即Kenobi
message[8:][/code>返回从索引8开始的字符串,并且[:-22]
向上(但不包括)到最后一个索引的第22个字符串。最好只执行消息[8:-22]
。[8:]表示希望从第8个索引位置开始字符串(索引0是第一个位置)。22表示你想从后面停在第22位,这是否回答了你的问题@两个[:]可以组合成一个吗?答案比问题更有趣。都是。真是巧合。