假设

x = range(20)
k = 5
x_kth = x[::5]


这给了我0,5,10,15 etc
有没有简单的方法来获取x中的第k个元素?

x_nonkth = [1,2,3,4,6,7,8,9,11 etc


我知道我能做

x_nonkth = [x[i] for i in range(len(x)) if i%k]


但是,如果有的话,我正在寻找一种更简单的方法(可能更快吗?)。

最佳答案

您可以利用set的不同之处:-

>>> x = range(20)
>>> k = 5
>>> list(set(x) - set(x[::k]))
[1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19]

07-24 21:18