目录
Remove all elements from a List after Index in Python
在 Python 中删除索引后列表中的所有元素
要从特定索引之后的列表中删除所有元素:
- 使用该
list.index()
方法获取index
值的。 - 使用列表切片从 index
0
到获取列表的一部分index + 1
。 - 新列表将只包含指定索引之前的元素。
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') print(index) # 👉️ 1 before_index = my_list[:index + 1] print(before_index) # 👉️ ['Alice', 'Bob']
我们使用该list.index()
方法获取列表中特定值的索引。
list.index()
方法返回其值等于提供的参数的第一个项目的索引。my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') print(index) # 👉️ 1
ValueError
如果列表中没有这样的项目,该方法将引发一个。
您可以使用try/except
语句来处理项目不在列表中的情况。
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] try: index = my_list.index('Bob') + 1 except ValueError: print('index not in List') index = None print(index) # 👉️ 2 before_index = my_list[:index] print(before_index) # 👉️ ['Alice', 'Bob']
这是一个示例,说明当我们list.index()
使用列表中不存在的值进行调用时它是如何工作的。
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] try: index = my_list.index('Another') + 1 except ValueError: print('index not in List') index = None print(index) # 👉️ None before_index = my_list[:index] print(before_index) # 👉️ ['Alice', 'Bob', 'Carl', 'Dean']
请注意,我们添加1
到调用该list.index()
方法的结果中。
列表切片的语法是my_list[start:stop:step]
值start
是包含的,stop
值是排他的。
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') + 1 print(index) # 👉️ 2 before_index = my_list[:index] print(before_index) # 👉️ ['Alice', 'Bob']
stop
索引的值是独占的,我们添加到索引以排除指定索引之后的所有元素。 1
如果未指定起始索引的值,则列表切片从 index 开始0
。
请注意,此方法不会从原始列表中删除元素,它会返回一个仅包含指定索引之前的元素的新列表。
如果您需要从指定索引之后的列表中删除元素,请就地使用del
语句,例如del my_list[index:]
.
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') + 1 del my_list[index:] print(my_list) # 👉️ ['Alice', 'Bob']
该del
语句可以与列表切片一起使用以从列表中删除多个项目。
我们只指定了一个值,所以该语句从索引start
之后的列表中删除所有元素。start
在 Python 中删除索引之前列表中的所有元素
要从特定索引之前的列表中删除所有元素:
- 使用该
list.index()
方法获取index
值的。 - 使用列表切片从索引
index + 1
到末尾获取列表的一部分。 - 新列表将只包含指定索引之后的元素。
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') print(index) # 👉️ 1 after_index = my_list[index+1:] print(after_index) # 👉️ ['Carl', 'Dean']
我们使用该list.index()
方法获取列表中特定值的索引。
list.index()
方法返回其值等于提供的参数的第一个项目的索引。my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') print(index) # 👉️ 1
ValueError
如果列表中没有这样的项目,该方法将引发一个。
您可以使用try/except
语句来处理项目不在列表中的情况。
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] try: index = my_list.index('Bob') + 1 except ValueError: print('index not in List') index = None after_index = my_list[index:] print(after_index) # 👉️ ['Carl', 'Dean']
And here is an example of how this works when we call list.index()
with a
value that isn’t present in the list.
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] try: index = my_list.index('Evelyn') + 1 except ValueError: # 👇️ this runs print('index not in List') index = None after_index = my_list[index:] print(after_index) # 👉️ ['Alice', 'Bob', 'Carl', 'Dean']
Notice that we add 1
to the result of calling the list.index()
method.
my_list[start:stop:step]
where the start
value is inclusive, and the stop
value is exclusive.Since we want to remove all elements from the list before the specified index
and the start
value is inclusive, we had to add 1
.
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') # 👇️ ['Carl', 'Dean'] print(my_list[index+1:]) # 👇️ ['Bob', 'Carl', 'Dean'] print(my_list[index:])
If 1 is not added to the index, the value at the specified index is also
included.
如果您需要从列表中删除指定索引之前的元素,请使用del
语句,例如del my_list[:index+1]
.
my_list = ['Alice', 'Bob', 'Carl', 'Dean'] index = my_list.index('Bob') del my_list[:index+1] # 👇️ ['Carl', 'Dean'] print(my_list)
该del
语句可以与列表切片一起使用以从列表中删除多个项目。
我们只指定了一个值,所以该语句从索引stop
之前的列表中删除所有元素。stop