2017-07-03 32 views
-4
list1 = ["Noki a"] 
print (list1[0:3]) #gives ["Noki a"] as output. 

print (list1[1:3]) #gives [] empty list as ouput. 

我怎么不知道如何实际工作。需要解释列表项目中字符串的字母之间存在空格时列表实际工作的相同方式。当列表项的值有一个空格在

+0

你已经得到了很好的答案给你的问题,但我想添加一个评论:为什么要把单个字符串放入列表中?你可以切分一个字符串。它不一定在列表中。 '''Noki a'[0:3]'给出'Nok'和''Noki''[1:3]'给出''''''。 –

回答

4

这与字符串中包含的空间无关。您的列表在索引0(字符串"Noki a")中只有一个项目,因此切片[1,3]为空,因为切片不包括索引0.

如果要切片字符串而不是列表,应该索引字符串,然后切片:

list1[0][1:3] 
+0

或者向后退一步,甚至不会将字符串放入单个项目列表中 - 只是将裸体字符串切片,不是? (不反对你的回答。) –

1

您的列表只有一个元素,即"Noki a"。因此,基于切片符号,包括[0]的任何切片都将具有该元素,否则将是空的。

如果你打算切片的字符串的一部分,然后从列表中删除该字符串

>>> s = "Noki a" 
>>> s[0:3] 
'Nok' 
>>> s[1:3] 
'ok' 

或者从你的列表索引元素[0](这是它包含字符串)导致

然后切片
>>> list1 = ["Noki a"] 
>>> list1[0][0:3] 
'Nok' 
>>> list1[0][1:3] 
'ok' 
0

为了有一个结果,你实际上是输出信办:

list1 = ["N", "o", "k", "i", " ", "a"] 
print (list1[0:3]) 
print (list1[1:3]) 

您目前在您的列表中只有一个项目,因此它总是第0项,意思是从0-3打印出零项“Noki a”,但是从1-3开始它不打印出来。

相关问题