首页 > 解决方案 > 在 Python 中对数组进行切片时单步执行多个值

问题描述

我试图在遍历数组的每个n元素时获取m值。例如,对于m = 2 和n = 5,给定

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

我想找回

b = [1, 2, 6, 7]

有没有办法使用切片来做到这一点?我可以使用嵌套列表理解来做到这一点,但我想知道是否有办法只使用索引来做到这一点。作为参考,列表理解方式是:

 b = [k for j in [a[i:i+2] for i in range(0,len(a),5)] for k in j]

标签: pythonarrayslist

解决方案


我同意 wim 的观点,你不能只用切片来做到这一点。但是你可以只用一个列表理解来做到这一点:

>>> [x for i,x in enumerate(a) if i%n < m]
[1, 2, 6, 7]

推荐阅读