Python 为什么[:-1]反转列表而不是只返回第一个索引?
祝你们平安 我开始使用head first book学习python,我遇到了这个问题 [::-1]在列表中,我知道当你不包括“开始”时,默认情况下它等于0,“停止”等于列表中的最大索引号 如果我们说最大值是5,那么这意味着[0:5:-1],如果你运行这个,你将得到第一个索引,但是如果你运行这个[:-1],它会以相反的顺序给你列表,为什么? 不是[::-1]==[0:5:-1],但它似乎等于这个[-1:5:-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
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
以这种方式解释切片。)