Python:如何在没有特定对象的情况下基于现有列表创建新列表

时间:2013-02-28 23:28:24

标签: python list

我有一个清单:

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

我想要一个基于列表a的新列表,而不是包含'CT'的所有对象。我怎么能这样做?

3 个答案:

答案 0 :(得分:6)

使用列表理解:

a = ['house', 'bikeCT', 'car', 'bike', 'houseCT']
b = [x for x in a if 'CT' not in x]

答案 1 :(得分: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']

答案 2 :(得分:1)

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

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

这是您的列表的外观。从中汲取一些东西:

del a[1]
del a[4]

这告诉计算机,从名为“a”的列表中删除第一项,并从名为“a”的列表中删除项目编号4。但请记住,在Python中,列表中的第一件事叫做0,而不是1.你的最终产品应该是这样的(在你写print(a)之后:

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

希望这有助于