在 Python 中删除索引之前/之后的列表中的所有元素

目录

Remove all elements from a List after Index in Python

  1. 在 Python 中删除索引后的列表中的所有元素
  2. 在 Python 中删除索引之前的列表中的所有元素

在 Python 中删除索引后列表中的所有元素

要从特定索引之后的列表中删除所有元素:

  1. 使用该list.index()方法获取index值的。
  2. 使用列表切片从 index0到获取列表的一部分index + 1
  3. 新列表将只包含指定索引之前的元素。
主程序
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 中删除索引之前列表中的所有元素

要从特定索引之前的列表中删除所有元素:

  1. 使用该list.index()方法获取index值的。
  2. 使用列表切片从索引index + 1到末尾获取列表的一部分。
  3. 新列表将只包含指定索引之后的元素。
主程序
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.

main.py
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.

The syntax for list slicing is 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.

main.py
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.

Note that this approach does not remove the elements from the original list, it returns a new list that only contains the elements after the specified index.

如果您需要从列表中删除指定索引之前的元素,请使用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