如何从 Python 列表中删除一个切片

在 Python 中从列表中删除一个切片

How to delete a slice from a list in Python

使用该del语句从列表中删除一个切片,例如
del my_list[start_index:stop_index]. del语句可用于按索引删除一个或多个列表元素。

主程序
my_list = [1, 2, 3, 4, 5, 6, 7] # ✅ delete slice from list start_index = my_list.index(2) print(start_index) # 👉️ 1 stop_index = my_list.index(6) print(stop_index) # 👉️ 5 del my_list[start_index:stop_index] print(my_list) # 👉️ [1, 6, 7] # ----------------------------------- # ✅ remove multiple non-consecutive indexes from list my_list = [1, 2, 3, 4, 5, 6, 7] indexes = [1, 3, 5] result = [item for idx, item in enumerate(my_list) if idx not in indexes] print(result) # 👉️ [1, 3, 5, 7]

第一个示例使用del语句从列表中删除一个切片。

列表切片的语法是my_list[start:stop:step].

start索引是包含的,索引stop是排他的(最多,但不包括)。

Python 索引是从零开始的,因此列表中的第一项的索引为,最后一项的索引为 0-1 len(my_list) - 1

我们在示例中从列表中删除切片时指定了start和索引。end

主程序
my_list = [1, 2, 3, 4, 5, 6, 7] # ✅ delete slice from list start_index = my_list.index(2) print(start_index) # 👉️ 1 stop_index = my_list.index(6) print(stop_index) # 👉️ 5 del my_list[start_index:stop_index] print(my_list) # 👉️ [1, 6, 7]

如果省略start索引,则切片从列表的开头开始。

主程序
my_list = [1, 2, 3, 4, 5, 6, 7] del my_list[:2] print(my_list) # 👉️ [3, 4, 5, 6, 7]
请注意,stop索引是排他的。切片上升到,但不包括stop索引。

如果省略stop索引,则切片会到达列表的末尾。

主程序
my_list = [1, 2, 3, 4, 5, 6, 7] del my_list[2:] print(my_list) # 👉️ [1, 2]

负索引可用于向后计数,例如my_list[-1]返回列表中的最后一项并my_list[-2]返回倒数第二项。

主程序
my_list = [1, 2, 3, 4, 5, 6, 7] del my_list[2:-1] print(my_list) # 👉️ [1, 2, 7]

索引是独占的stop,因此列表切片上升到但不包括列表中的最后一项。

您还可以step在从列表中删除切片时指定 a。

主程序
my_list = [1, 2, 3, 4, 5, 6, 7] step = 2 del my_list[2:7:step] print(my_list) # 👉️ [1, 2, 4, 6]

2该示例删除从 index开始到但不包括 index的每隔一个列表项7

如果您需要从列表中删除多个不连续的索引,请使用列表理解。

主程序
my_list = [1, 2, 3, 4, 5, 6, 7] indexes = [1, 3, 5] result = [item for idx, item in enumerate(my_list) if idx not in indexes] print(result) # 👉️ [1, 3, 5, 7]

我们使用列表理解来迭代列表。

列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。

在每次迭代中,我们检查当前索引是否不是要删除的索引之一并返回结果。

enumerate函数接受一个可迭代对象并返回一个包含元组的
枚举对象,其中第一个元素是索引,第二个是项目。

主程序
my_list = ['apple', 'banana', 'melon'] for index, item in enumerate(my_list): print(index, item) # 👉️ 0 apple, 1 banana, 2 melon

发表评论