在 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