假設你有以下列表:的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