我有一个清单:
a = ['house', 'bikeCT', 'car', 'bike', 'houseCT']
我想要一个基于列表a的新列表,而不是包含'CT'
的所有对象。我怎么能这样做?
答案 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']
希望这有助于