Python 为什么[:-1]反转列表而不是只返回第一个索引?

Python 为什么[:-1]反转列表而不是只返回第一个索引?,python,list,Python,List,祝你们平安 我开始使用head first book学习python,我遇到了这个问题 [::-1]在列表中,我知道当你不包括“开始”时,默认情况下它等于0,“停止”等于列表中的最大索引号 如果我们说最大值是5,那么这意味着[0:5:-1],如果你运行这个,你将得到第一个索引,但是如果你运行这个[:-1],它会以相反的顺序给你列表,为什么? 不是[::-1]==[0:5:-1],但它似乎等于这个[-1:5:-1]! 那么为什么步骤索引在这里定义开始索引呢 book = "The Hitchhik

祝你们平安 我开始使用head first book学习python,我遇到了这个问题 [::-1]在列表中,我知道当你不包括“开始”时,默认情况下它等于0,“停止”等于列表中的最大索引号 如果我们说最大值是5,那么这意味着[0:5:-1],如果你运行这个,你将得到第一个索引,但是如果你运行这个[:-1],它会以相反的顺序给你列表,为什么? 不是[::-1]==[0:5:-1],但它似乎等于这个[-1:5:-1]! 那么为什么步骤索引在这里定义开始索引呢

book = "The Hitchhiker's Guide to the Galaxy"
booklist = list(book)
booklist = ['T', 'h', 'e', ' ', 'H', 'i', 't', 'c', 'h', 'h', 'i',
        'k', 'e', 'r', "'", 's', ' ', 'G', 'u', 'i', 'd', 'e',
        ' ', 't', 'o', ' ', 't', 'h', 'e', ' ', 'G', 'a', 'l',
        'a', 'x', 'y']
backwards = booklist[::-1]
print(''.join(backwards))
输出>>>yxalaG eht ot ediuG s'Rekihctih eht

backwards=booklist[0::-1]
打印(''.join(向后))

输出>>>T

backwards = booklist[-1::-1]
print(''.join(backwards))

输出>>>yxalaG eht ot ediuG s'Rekihhtich eht

如果您提供,切片操作需要一些步骤。它是这样的
[开始:停止:步骤]
所以如果你写
[::-1]
。默认情况下,
开始
停止
步骤
都是
。由于我们提供了
-1
步骤,这意味着我们减少了索引。所以我们得到的是输入数据的倒数

>>> d = 'Galaxy'
>>> d[None:None:None]
'Galaxy'
>>> d[None:None:-1]
'yxalaG'
>>> d[::-1]
'yxalaG'

我将更新答案。它仍然没有解释为什么
[::-1]
会反转列表。(我认为答案是,
list
str
以这种方式解释切片。)