如何返回列表中不以数字开头的所有项目?

2024-04-20 12:26:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由单词和数字组成的列表。让我们说:

list1 = ['1','100', 'Stack', 'over','flow']

从这个列表中,我想过滤所有的数字和保留的话。我已经导入了re并找到了它的re代码,即:

[^0-9] 

然而,我不知道如何实现这一点,以便我得到如下列表。你知道吗

result = ['Stack', 'over', 'flow']

Tags: 代码re列表stack数字resultflow单词
3条回答

不需要regex,使用^{}

list1 = ['1','100', 'Stack', 'over','flow']
print([i for i in list1 if not i.isdigit()])

退货:

['Stack', 'over', 'flow']

通过列表理解,您可以很好地做到这一点:

list1 = ['1','100', 'Stack', 'over','flow']
list2 = [i for i in list1 if not i.isdigit()]

如果出于任何原因,您确实希望使用regex来完成此操作(可能您有更复杂的筛选条件),则可以使用以下方法:

import re

list1 = ['1','100', 'Stack', 'over','flow']
list2 = [i for i in list1 if re.fullmatch('[^0-9]+', i)]

使用list-comprehension和字符串方法isdigit

[elem for elem in list1 if not elem.isdigit()]

相关问题 更多 >