删除 Python 列表中包含列表中部分单词的元素

Remove an element in Python list with partial word in list

我有一个看起来像这样的列表,我已经尝试了以下代码,但似乎没有任何效果。我的名为“ss”的列表看起来像这样,我正在尝试删除列表中带有“Sheet”的所有元素:

ss = ['14', '13', '11', '10', '9', '8', '6', '3', '2', '1', '0', '7', '4', '12', '5', 'Sheet12', 'Sheet1']

我试过这个的变体,但它们什么也没做:

ssnew = list(filter( lambda s: not (s[0:4]=="Sheet"), ss))

或者,

newss = {ss.replace("Sheet","")for x in ss}

我需要我的新列表 newss 看起来像这样 -->

newss = ['14', '13', '11', '10', '9', '8', '6', '3', '2', '1', '0', '7', '4', '12', '5'] 

使用理解:

>>> [i for i in ss if not i.startswith('Sheet')]
['14',
 '13',
 '11',
 '10',
 '9',
 '8',
 '6',
 '3',
 '2',
 '1',
 '0',
 '7',
 '4',
 '12',
 '5']

既然你确实提到列表元素不应包含“Sheet”且没有其他要求,那么这个列表理解是正确的:

print([x for x in ss if 'Sheet' not in x])

另一个解决方案是:

lst = [i for i in ss if i.isdigit()]
print(lst)