提问人:VMMF 提问时间:6/16/2023 最后编辑:petezurichVMMF 更新时间:6/17/2023 访问量:41
仅访问列表中的最后一个元素与访问范围以包括列表中的最后一个元素的区别
Difference in accessing only last element from a list vs accessing a range up to including the last elements from a list
问:
现在我正在使用 Python,用于使用 Matlab 语法,这个例子令人困惑:
我有一个列表,我想访问它的最后一个元素,比方说list_a = [0,1,2,3,4,5,6,7,8,9]
在 Python 中,我必须做,而在 Matlab 中我会做list_a [-1] = 9
list_a(end)
所以在我看来,Python 中的最后一个元素意味着 Matlab 中的关键字。-1
end
然后我想访问列表中的最后 5 个元素,包括最后一个元素。
在Matlab中,我会做.Matlab 数组的第一个索引是 1 而不是 Python 中的 0,这就是为什么我必须从索引 6 开始。list_a (6:end)
在我看来,这样做是合乎逻辑的,因为意味着列表的最后一项,如上例所示。但是,这在 Python 中不起作用,因为返回的结果是 所以要在 Python 中获取列表的最后一个元素,我必须这样做并留空list_a[5:-1]
-1
[5, 6, 7, 8]
list_a[5:]
我不知道他们为什么决定这样做,但我想知道 Python 中是否有一些东西可以使用,例如 Matlab 中的 end 关键字,它适用于列表索引和切片。谢谢
答:
例如,在对数组进行切片时,不包括 y。python 切片数组的方式是从 开始,结束于 。list[x:y]
x
y-1
现在,当您在切片列表时添加关键字时,python 会将其作为列表的末尾。例如,如果我这样做,它将抓取索引 1 到最后一个索引。令人困惑,但这就是 python 的工作方式。None
list[1:None]
留空与 相同。因此,在您的示例中,与 .None
list_a[5:]
list_a[5:None]
至于你的问题,从技术上讲,你可以在python中用作END关键字。None
评论
a[4:7]
a[7:4:-1]