0

我有一个清单:

a = ['house', 'bikeCT', 'car', 'bike', 'houseCT']

我想要一个基于列表 a 的新列表,其中所有对象都不包含'CT'. 我怎么能那样做?

4

3 回答 3

7

使用列表推导:

a = ['house', 'bikeCT', 'car', 'bike', 'houseCT']
b = [x for x in a if 'CT' not in x]
于 2013-02-28T23:29:00.707 回答
1

如果您的搜索比首选更复杂in,您可以使用正则表达式:

>>> import re
>>> a = ['house', 'bikeCT', 'car', 'bike', 'houseCT']  
>>> [s for s in a if not re.match(r'.*e',s)]
['car']

或者,endswith

>>> a = ['house', 'bikeCT', 'car', 'bike', 'houseCTn']
>>> [s for s in a if not s.endswith('CT')]
['house', 'car', 'bike', 'houseCTn']
于 2013-03-01T00:02:36.503 回答
1

一种更简单的方法是删除项目,而不是创建一个新项目。

a = ['house', 'bikeCT', 'car', 'bike', 'houseCT']

这就是您的列表的外观。从中删除一些东西:

del a[1]
del a[4]

这告诉计算机,从名为“a”的列表中删除第一项,并从名为“a”的列表中删除第 4 项。但请记住,在 Python 中,列表中的第一件事称为 0,而不是 1。您的最终产品应如下所示(在您编写 print(a) 之后:

['house', 'car', 'bike']

希望这可以帮助

于 2015-07-17T19:40:21.713 回答