python - 如何从python中以前缀开头的列表中删除字符串

标签 python string list startswith

我有这个字符串列表和一些前缀。我想从列表中删除以这些前缀中的任何一个开头的所有字符串。我试过:

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/

相关文章:

python - 如何在 pandas dataframe python 中将名称的第一个字符转换为大写?

python - 基于相同字符的不同位置将正则表达式应用于 Pandas 列

python - 如何传递文件名的路径

xml - 如果它们是字符串列表,如何获取值属性的内容并在 XSLT 中拆分它们?

python-标记系列中的第二组项目

java - 如何按 id 对 ArrayList 进行排序并添加到 ArrayList<ArrayList<DataPost>>

python - 从返回最大值和相关数据的列表中抓取数据

python - 安装python3-dev时出现的问题

python - SQLAlchemy 在一个事务中更新多行

php - 如何在php中从数据库中的数组中添加多行