为什么 [:-0]
返回一个空字符串?我的代码中有一个变量,它确定必须剪切的字符串的长度。问题是当这个变量中有 int(0) 时它返回空字符串。
例子:
def rightPass(word,value):
substring = word[:-value]
return substring
for i in range(3,-1,-1):
print rightPass('word',i)
>>> w
>>> wo
>>> wor
>>>
我知道这样做没什么大不了的:
def rightPass(word,value):
substring = word[:-value] if value!=0 else word
return substring
但我找不到 [:-0]
这样做的原因。
我认为这是因为 Python 不知道 -0
值,但我尝试使用 0
并发生了同样的问题。
谁能解释一下?
最佳答案
您要求 Python 从索引 0 到索引 0 创建一个新字符串。这是一个空切片。
切片的结束值 是唯一的。 Python 从起始索引中选取结束索引之前 的所有字符。这里 -0
与 0
相同(负零与正零相同)。
请注意,这与使用实际负值不同; [0:-1]
将获取长度并将负值替换为 len(object) - 1
并将其用作最终值,但这 不适用于 -0
,因为那不是负值!
如果你想切片到最后,你可以使用 None
而不是 0
:
substring = word[:-value if value else None]
关于python - 剪切零字符(字符串[:-0]) from string - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26763788/