或者,更一般的问题是,如何切割数组以获得每个第n行,所以对于偶数/奇数,你想要跳过一行,但在一般情况下,你想要得到每一个n- th行,跳过n-1行.
Fel*_*ing 143
假设您正在讨论列表,请在切片中指定步骤(并开始索引).语法是list[start:end:step].
您可能知道获取项目的正常列表访问权限,例如l[2]获取第三项.在两者之间给出两个数字和一个冒号,您可以指定要从列表中获取的范围.返回值是另一个列表.例如,l[2:5]给你第三到第六项.您还可以传递可选的第三个数字,该数字指定步长.默认步长为1,这意味着每个项目(在开始和结束索引之间).
例:
>>> l = range(10)
>>> l[::2] # even - start at the beginning at take every second item
[0, 2, 4, 6, 8]
>>> l[1::2] # odd - start at second item and take every second item
[1, 3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)
请参阅Python教程中的列表.
如果你想获得每n个列表(即不包括第一个元素)的元素,你将不得不切片像l[(n-1)::n].
例:
>>> l = range(20)
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Run Code Online (Sandbox Code Playgroud)
现在,获得每个第三个元素将是:
>>> l[2::3]
[2, 5, 8, 11, 14, 17]
Run Code Online (Sandbox Code Playgroud)
如果你想包含第一个元素,你就是这样做的l[::n].