我对编码仍然很陌生,就像我编写了几天一样。我试图通过一个小型的个人项目来教自己python。我一直在玩列表切片,但有些东西并没有加起来,这阻碍了我试图制作的功能。
通过在shell中玩游戏(正确的术语?)我推断出:
>>> list1 = "hello"
>>> list2 = list(list1)
>>> list2[-1:]
>>> 'o'
>>> list2[-1:] == 'o'
>>> False
>>> list2[0]
>>> 'h'
>>> list2[0] == 'h'
>>> True
这是为什么?起初我想是因为list2可能是由另一个列表定义的,它的最后一个索引不会是==到list1&s;因为list1可以重新定义?但后来我尝试了第一个索引,现在我很困惑。
答案 0 :(得分:1)
我猜你要表现的是
>>> list1 = 'hello'
>>> list1
'hello'
>>> list2 = list(list1)
>>> list2
['h', 'e', 'l', 'l', 'o']
在这种情况下,
>>> list2[-1]
'o'
>>> list2[-1:]
['o']
如您所见,list2[-1:]
会返回一个列表,因此它不等于'o'
。
答案 1 :(得分:-1)
编辑:忽略下面的内容。在您的示例中,list2是一个列表,其中包含字符串" hello"作为元素。这与字符串"你好"。
不同 pythpm中的列表语法是[from:to:stepsize]
。
如果你省略其中的任何一项,其余部分都隐含在“有意义的事情”中。例如,
list2[:3] == 'hel'
list2[1:] == 'ello'
list2[::-1] == 'olleh'
最后,如果你没有任何冒号,那么你正在访问一个单一元素。
list2[0] == 'h'
list2[-1] == 'o'