删除 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)
我有一个看起来像这样的列表,我已经尝试了以下代码,但似乎没有任何效果。我的名为“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)