在 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
循环。
从字符串列表中删除一个字符串:
- 使用
for
循环迭代列表的副本。 - 在每次迭代中,检查当前字符串是否满足条件。
- Use the
list.remove()
method to remove the strings that meet the condition.
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.
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.
如果您尝试遍历原始列表并从中删除项目,您可能会遇到难以定位的错误。