我有这个字符串列表和一些前缀。我想从列表中删除以这些前缀中的任何一个开头的所有字符串。我试过:
prefixes = ('hello', 'bye')
list = ['hi', 'helloyou', 'holla', 'byeyou', 'hellooooo']
for word in list:
list.remove(word.startswith(prexixes)
所以我希望我的新列表是:
list = ['hi', 'holla']
但是我得到这个错误:
ValueError: list.remove(x): x not in list
出了什么问题?
最佳答案
您可以创建一个新列表,其中包含所有不以您的前缀之一开头的词:
newlist = [x for x in list if not x.startswith(prefixes)]
您的代码不起作用的原因是 startswith
方法返回一个 bool 值,而您要求从列表中删除该 bool 值(但您的列表包含字符串,而不是 bool 值)。
请注意,将变量命名为 list
通常不是一个好主意,因为这已经是预定义的 list
类型的名称。
关于python - 如何从python中以前缀开头的列表中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23399209/