假设我有一个这样的列表:
my_list = [0,1,2,3,4,5] # range(5)
我想打印一下:
[2,1,0]
我的python脚本是:
print(my_list[2:-1:-1])
但会打印一个空列表!
这是python中的一个错误(2和3!)?
我不会使用任何技巧:
num_of_elems_i_want = 3
print(my_list[::-1][len(my_list) - num_of_elems_i_want:])
或第三方模块..
答案 0 :(得分:5)
您可以对list
进行切片,如下所示:
print(my_list[2::-1]) # L[start:end:step]
编辑:
您获得的结果不是 Bug 。
请记住,list
元素的遍历是从左到右进行的,并且在end=-4
[ viz 元素之前没有元素:5来自start=2
的→0→1→2]。因此,返回 empty list
。
出于同样的原因,您也可以print(my_list[2:-7:-1])
答案 1 :(得分:1)
您也可以将列表永久转换为其他用途:
my_list.reverse()
print(my_list[-4:-1])