作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这个字符串列表和一些前缀。我想从列表中删除以这些前缀中的任何一个开头的所有字符串。我试过:
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/
我是一名优秀的程序员,十分优秀!