【发布时间】:2021-05-06 16:12:57
【问题描述】:
我有这个列表理解:
[''.join(letter for letter in word if not letter.isdigit()) for word in words]
我要做的是为列表words 中的每个word 检查word 是否包含数字。如果单词有数字字符,它将从最终输出中排除。
例如,remove_numbers(['lion', 'tiger99', 'yes7', '9']) 给我:
['lion', 'tiger', 'yes', '']
但是,我还想在最终输出中排除空字符串。所以想要的输出是:
['lion', 'tiger', 'yes']
我尝试在列表理解中添加if not word。不幸的是,这不起作用。有人可以帮忙吗?
【问题讨论】:
-
[''.join(letter for letter in word if not letter.isdigit()) for word in words if not word.isnumeric()] -
你可以使用正则表达式``` import re [ word if not re.search('\d',word) for word in words] ```
-
if not word.isnumeric()不是if not word -
如果你想删除数字,你可以使用这个代码
[re.sub('\d', '', word) for word in words if not word.isnumeric()]
标签: python python-3.x list list-comprehension