如果element不为空,如何替换列表中的元素值?

时间:2019-04-05 15:46:13

标签: python

我需要从元素列表中删除某些特定字符,但是某些元素为None。

我有一个元素列表,例如

row= ['Hello,World','$Hello World', None] 

我需要一个python代码才能从元素中删除“,”和“ $”。 我的代码如下所示,但语法无效:

row=[item.replace('$','').replace(',','') if item is not None for item in row]

我需要在列表中保留“无”,因此所需的输出应为['HelloWorld', 'Hello World', None]

请提出解决方法,谢谢

2 个答案:

答案 0 :(得分:3)

[item.replace('$', '').replace(',','') for item in row if item]

如果要保留无

[item.replace('$', '').replace(',','') if item else item for item in row]

注意:如果列表中除了字符串和Nonetypes之外,还需要检查元素是否为字符串或在调用replace之前对replace方法做出响应。

答案 1 :(得分:1)

您可以使用and运算符:

[i and i.replace('$','').replace(',','') for i in row]

这将返回:

['HelloWorld', 'Hello World', None]