Python 如何从每个x元素之间的列表中删除元素

Python 如何从每个x元素之间的列表中删除元素,python,list,Python,List,我正在努力找出如何删除第一个元素之间的每个元素,如果它在3个数字以内。下面举例说明了一些输入lst的预期输出 lst = [0,1,2,3,4,5,8] -> [0,3,8] lst = [0,1,2,3,4,5,8,15] -> [0,3,8,15] lst = [0,1,2,3,4,5,8,15,55] -> [0,3,8,15,55] 元素15和15,55幸存下来,因为它们不在“每3个数字”之间(即索引号为0、3、6、9等的列表元素之间) 这

我正在努力找出如何删除第一个元素之间的每个元素,如果它在3个数字以内。下面举例说明了一些输入
lst
的预期输出

lst = [0,1,2,3,4,5,8]        -> [0,3,8] 
lst = [0,1,2,3,4,5,8,15]     -> [0,3,8,15] 
lst = [0,1,2,3,4,5,8,15,55]  -> [0,3,8,15,55]
元素
15
15,55
幸存下来,因为它们不在“每3个数字”之间(即索引号为0、3、6、9等的列表元素之间)

这是我的尝试,但它似乎输出列表而不删除任何内容

输出 [0,1,2,3,4,5,8,15,55]

很抱歉在我的原始帖子上没有做出努力,我今天大部分时间都在努力解决这个问题,我需要尽快解决。感谢比尔澄清我也澄清了我的尝试。

解决方案 例子
据我所知,您希望这样做:

def function(a_list, jump=3):
    result = []
    for i in range(0, len(a_list), jump):
        result.append(a_list[i])
    for j in range(i+1, len(a_list)):
        result.append(a_list[j])
    return result

请澄清这些要求。这些要求有什么不清楚的地方?我不确定你到底想做什么,但这似乎是一个可以用过滤器解决的问题。你可以检查为什么15,55在输出列表中?我已经根据上面给出的信息编辑了你的帖子。请检查它是否与您的意图相似。下次请务必花些时间举例说明逻辑。
[element for i, element in enumerate(lst) if (i % 3 == 0) or (i >= 3 * ((len(lst) - 1) // 3))]
lst = [0,1,2,3,4,5,8]
[element for i, element in enumerate(lst) if (i % 3 == 0) or (i >= 3 * ((len(lst) - 1) // 3))]
Out[35]: [0, 3, 8]

lst = [0,1,2,3,4,5,8,15]
[element for i, element in enumerate(lst) if (i % 3 == 0) or (i >= 3 * ((len(lst) - 1) // 3))]
Out[37]: [0, 3, 8, 15]

lst = [0,1,2,3,4,5,8,15,55]
[element for i, element in enumerate(lst) if (i % 3 == 0) or (i >= 3 * ((len(lst) - 1) // 3))]
Out[39]: [0, 3, 8, 15, 55]
def function(a_list, jump=3):
    result = []
    for i in range(0, len(a_list), jump):
        result.append(a_list[i])
    for j in range(i+1, len(a_list)):
        result.append(a_list[j])
    return result