我有这个字符串列表和一些前缀。我想从列表中删除以这些前缀开头的所有字符串。我试过:
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
怎么了?
格雷格的解决方案肯定更像是Python式的,但在你最初的代码中,你的意思可能是这样的。请注意,我们创建了一个副本(使用
list[:]
语法)并对该副本进行迭代,因为在迭代列表时不应修改该列表。您可以创建一个新列表,其中包含所有以您的前缀开头的单词:
代码不起作用的原因是
startswith
方法返回一个布尔值,并且要求从列表中删除该布尔值(但列表包含字符串,而不是布尔值)。请注意,通常不建议命名变量
list
,因为这已经是预定义的list
类型的名称。相关问题 更多 >
编程相关推荐