【发布时间】:2016-01-20 12:53:06
【问题描述】:
我有一个列表,其中包含以未知顺序混合的浮点数、整数和字符串。我想找到所有字符串值并将它们替换为 0。问题是我不知道这个字符串会是什么样子,除了它将包含 4 个字符(十六进制数字)。
所以例如我会有这样一个列表:
h = [1, 2, 5.3, '00cc', 3.2, '085d']
我想用零替换这些字符串(在本例中为“00cc”和“085d”),这样我的最终列表将如下所示:
h = [1, 2, 5.3, 0, 3.2, 0]
我知道在列表中查找字符串或值并替换它的方法,但如果我只知道列表元素的类型和长度,则不知道。
【问题讨论】:
-
[ x if type(x) is not str else 0 for x in h ] -
[0 if type(i) is str else i for i in h]