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

时间:2017-08-01 14:10:58

标签: python list

对你们说和平吧 我开始学习python使用头第一本书,我遇到了这个 列表中的[:: - 1]我知道当你不包含“start”时,它默认等于0,“stop”等于列表中的最大索引号 所以如果我们说max是5所以这意味着[0:5:-1]如果你运行这个你将获得第一个索引,但是如果你运行这个[:: - 1]它会以相反的顺序给你列表为什么? isnt [:: - 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'rekihhctiH ehT

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

输出>>> Ť

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

输出>>> yxalaG eht ot ediuG s'rekihhctiH ehT

1 个答案:

答案 0 :(得分:1)

如果您提供,切片操作需要一些步骤。就像这个[start:stop:step]所以如果你写[::-1]。默认情况下,startstopstep都是None。正如我们提供的step -1,意味着我们减少了索引。所以我们得到输入数据的反转。

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