从负索引到正索引的Python列表索引

2024-04-20 07:18:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从一个列表中建立索引。我知道负指数指的是从列表末尾开始倒数的项目。我的问题是,为什么在从负指数到正指数的范围内建立指数似乎是不可能的,尽管这看起来很直观。你知道吗

例如,foo[-1]、foo[0]、foo[1]都是从列表foo索引的有效方法。为什么foo[-1:1]不起作用? 或者,既然foo[-1:]选择了最后一个元素,为什么foo[-1:0]不能等价地工作?你知道吗

foo = ['a','b','c']
print(foo[-1])
print(foo[0])
print(foo[1])
print(foo[-1:1])

可以直接从-1、0和1索引,但不能通过-1:1的范围。你知道吗


Tags: 项目方法元素列表foo指数直观print
3条回答

据我所知,你在找这样的东西:

a = [10, 20, 30, 40]
a[-1:] + a[:1]  # this is [40, 10]

我猜你投了反对票,因为这是一个相当模糊的问题。“为什么?”类型问题的回答可能有问题-这可能是一个工程决策。您可以让它自动地这样运行,但是在查询a[b:c]时需要检查b > c(请记住,示例中的-1实际上是len(a) - 1)。考虑到您将使用这样的东西的情况,以及检查的成本,他们可能选择不实现这样的东西。你知道吗

你能做到的

foo[-1:1:-1]

输出:['c']

切片使用foo[start:end:step]

你可以做foo[::-1]来反转列表等等

这将打印foo中的所有元素

print(foo[-len(foo):])

['a', 'b', 'c']

这将打印foo中的最后两个元素

print(foo[-2:])

['b', 'c']

这就是它的工作原理

相关问题 更多 >