📜  Python| List 中每第 K 个元素删除(1)

📅  最后修改于: 2023-12-03 15:04:20.282000             🧑  作者: Mango

Python | List 中每第 K 个元素删除

在Python的列表中,有时我们需要根据需求每隔一定的元素就删除一个元素。这可以用Python的切片和循环语句来实现。下面我们详细介绍如何实现这一操作。

方法一:使用循环语句和切片

可以使用循环语句和切片来删除列表的第K个元素,以下是实现的代码:

def delete_kth_element(arr, k):
    i = 1
    while i <= len(arr):
        if i % k == 0:
            arr = arr[:i-1] + arr[i:]
        else:
            i += 1
    return arr

其中,arr为待删除的列表,k为每隔几个元素就删除一个元素。运行以上代码,可以得出如下结果:

>>> x = [1, 2, 3, 4, 5, 6, 7]
>>> delete_kth_element(x, 2)
[1, 3, 5, 7]

其中,列表x的第2个元素为2,被删除后,结果为[1, 3, 5, 7]

方法二:使用列表推导式

除了上述方法外,还可以使用Python特有的列表推导式来实现,只需要一行代码即可实现相同的效果:

def delete_kth_element(arr, k):
    return [x for i, x in enumerate(arr) if (i + 1) % k != 0]

这里使用了enumerate()函数来返回列表的索引和值,如果当前的索引不是第K个元素,就将其加入到新列表中。运行以上代码,可以得到如下结果:

>>> x = [1, 2, 3, 4, 5, 6, 7]
>>> delete_kth_element(x, 2)
[1, 3, 5, 7]
总结

以上就是如何使用Python从列表中每隔K个元素删除一个元素的方法。当我们需要根据需求删除指定数量的元素时,以上的方法都可以实现。您可以根据实际情况选择其中的任何一个。