从 Python 中的字符串列表中删除一个字符串

在 Python 中从字符串列表中删除一个字符串

Remove a String from a list of Strings in Python

使用该list.remove()方法从字符串列表中删除一个字符串,例如
my_list.remove('apple'). list.remove()方法将从列表中删除其值等于提供的字符串的第一个字符串。

主程序
my_list = ['apple', 'banana', 'kiwi', 'avocado'] # ✅ Remove string from list by value if 'kiwi' in my_list: my_list.remove('kiwi') print(my_list) # 👉️ ['apple', 'banana', 'avocado'] # ---------------------------------------------- # ✅ Remove string from list by index my_list.pop(0) print(my_list) # 👉️ ['banana', 'avocado'] # ---------------------------------------------- # ✅ Remove one or more strings from list (list comprehension) my_list = ['apple', 'application', 'banana', 'kiwi'] new_list = [item for item in my_list if not 'ap' in item] print(new_list) # 👉️ ['banana', 'kiwi'] # ---------------------------------------------- # ✅ Remove one or more strings from list (for loop) my_list = ['apple', 'application', 'banana', 'kiwi'] for item in my_list.copy(): if 'ap' not in item: my_list.remove(item) print(my_list) # 👉️ ['apple', 'application']

第一个示例使用list.remove()方法按值从列表中删除字符串。

主程序
my_list = ['apple', 'banana', 'kiwi', 'avocado'] if 'kiwi' in my_list: my_list.remove('kiwi') print(my_list) # 👉️ ['apple', 'banana', 'avocado']

list.remove()方法从列表中

删除第一项,其值等于传入的参数。

ValueError如果没有这样的项目,该方法将引发一个。

remove()方法改变原始列表并返回None

try/except如果需要处理字符串不在列表中的情况,也可以使用语句。

主程序
my_list = ['apple', 'banana', 'kiwi', 'avocado'] try: my_list.remove('TEST') except ValueError: pass

如果列表中不存在指定的字符串,则except块运行。

或者,您可以使用该pop()方法。

使用该list.pop()方法从列表中删除字符串,例如
my_list.pop(0). list.pop()方法将删除指定位置的字符串并返回删除的值。

主程序
my_list = ['apple', 'banana', 'kiwi', 'avocado'] my_list.pop(0) print(my_list) # 👉️ ['banana', 'kiwi', 'avocado']

list.pop
方法删除
列表
中给定位置的项目并将其返回。

如果未指定索引,该pop()方法将删除并返回列表中的最后一项。

如果您需要从列表中删除一个或多个字符串,请使用列表理解。

主程序
my_list = ['apple', 'application', 'banana', 'kiwi'] new_list = [item for item in my_list if not 'ap' in item] print(new_list) # 👉️ ['banana', 'kiwi']

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

在每次迭代中,我们检查该字符串ap是否不存在于当前字符串中并返回结果。

新列表不包含任何包含 substring 的字符串ap

如果您需要从列表中删除一个或多个字符串,则列表理解方法是合适的。

如果您只需要从列表中删除单个字符串,请使用
list.remove()list.pop()方法。

另一种方法是使用简单的for循环。

从字符串列表中删除一个字符串:

  1. 使用for循环迭代列表的副本。
  2. 在每次迭代中,检查当前字符串是否满足条件。
  3. Use the list.remove() method to remove the strings that meet the condition.
main.py
my_list = ['apple', 'application', 'banana', 'kiwi'] for item in my_list.copy(): if 'ap' in item: my_list.remove(item) print(my_list) # 👉️ ['banana', 'kiwi']

The list.copy method
returns a shallow copy of the object on which the method was called.

On each iteration, we check if the string ap is contained in the current
string and use the list.remove() method to remove the matching elements.

If you only need to remove the first matching element, use the break statement
to exit the for loop.

main.py
my_list = ['apple', 'application', 'banana', 'kiwi'] for item in my_list.copy(): if 'ap' in item: my_list.remove(item) break print(my_list) # 👉️ ['application', 'banana', 'kiwi']

The
break
statement breaks out of the innermost enclosing for or while loop.

The most important thing to note when removing items from a list in a for loop
is to use the list.copy() method to iterate over a copy of the list.

如果您尝试遍历原始列表并从中删除项目,您可能会遇到难以定位的错误。