Python 拼接列表在向后工作时不包括第一个元素

Python splicing list does not include first element when working backwards

new_list = [i + 1 for i in range(16)]

sec_list = new_list[(len(new_list) - 2):0:-2]

print(new_list)

print(sec_list)

实际输出

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

[15, 13, 11, 9, 7, 5, 3]

期望输出:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]

[15, 13, 11, 9, 7, 5, 3, 1] <---- I want the 1 to be present

只是想澄清一下这是如何工作的。我以为[开始:结束:increment/decrement]

这就是您所需要的

sec_list = new_list[(len(new_list) - 2)::-2]
print(sec_list) # [15, 13, 11, 9, 7, 5, 3, 1]

你在第二个参数中犯了一个错误:

new_list[(len(new_list) - 2):0:-2]

开始:(len(new_list) - 2) 停止:0 步骤:-2

这意味着您停止了 0 项,这就是为什么没有包括 1 项的原因

你也可以阅读这篇文章there