假设你有以下列表:的Python:指定布尔值列表元素给予一个特定条件
import numpy as np
mylist=[8.4468975,
8.52036,
9.3605785,
np.ma.core.MaskedConstant(),
np.ma.core.MaskedConstant()]
# [8.4468975, 8.52036, 9.3605785, masked, masked]
,你要分配给0
是masked
所有值,并1
所有其他人。你怎么能正确地做到这一点?
我想这一点,但结果是一个空列表:
mylist=[1 for i,v in enumerate(mylist) if type(mylist[i]) is float]
结果应该是数字(无真/假):
mylist=[1,1,1,0,0]
编辑
我的原始列表中存在的masked
值为numpy.ma.core.MaskedConstant
。
我实际上已经忘记了关于“masked”实例类型的重要内容。它们是'numpy.ma.core.MaskedConstant',而不是字符串。所以你的方法不能像现在这样。 – FaCoffee
无论如何,我的方法应该工作,因为它不依赖字符串比较。 – FLab
我得到的结果是'0'值列表。没有其他的。我不明白为什么 – FaCoffee